zoukankan      html  css  js  c++  java
  • AngularJs2与AMD加载器(dojo requirejs)集成

    现在是西太平洋时间凌晨,这个问题我鼓捣了一天,都没时间学英语了,英语太差,相信第二天我也看不懂了,直接看结果就行。
    核心原理就是require在AngularJs2编译过程中是关键字,而在浏览器里面运行时候AngularJs2不会去关心require方法。所以只要在原始的ts代码中不出现require就没问题。所以在AMD的加载器加载完毕之后,立即用一个全局变量保存,在AngularJs2的代码中使用这个全局变量在做加载器。
    Because require is a key word of Angular, RequireJs will conflict with Angularjs.
    The reason angular use commonjs modular specification, it need to compile to js for run in browsers.
    If you used require in code angularjs2 , the expression will be compiled to another style:

    require(['dojo/_base/html'], (html) => {
          console.log(html);
        }); 
    
    var html = __webpack_require__(['dojo/_base/html']);
    console.log(html);
    

    But if you the code in runing, the require will works fine.
    image
    This means Angularjs2 never replace the require when your app run in browsers.
    So there have a perfect way to integrate requireJs within AngularJs2.

      <script>
        dojoConfig = {
          async: true,
          parseOnLoad: false
        }
      </script>
      <script src="//js.arcgis.com/3.17/"></script>
      <script type="text/javascript">
        dojoRequire = require;
      </script>
    

    image

  • 相关阅读:
    读书笔记-js
    读书笔记-设计模式
    读书笔记-并发和多线程
    读书笔记-泛型有限通配符
    读书笔记-类和类加载器
    项目: 推送水木文章到Kindle
    项目:DoubleFaceCamera
    项目:BluetoothChat
    项目:简单记事本
    项目: 连连看
  • 原文地址:https://www.cnblogs.com/dojo-lzz/p/5688440.html
Copyright © 2011-2022 走看看