使用requireJS管理JS, angularJS就不需要用ng-app了吗?

阅读 6k
2 个回答

由于require.js是异步加载的,而不是阻塞,所以用require.js加载angular时,如果在html中定义了ng-app,很容易出现这样的情况。

clipboard.png

所以我们不能直接以ng-app来定义angular的模块

  • 解决方法如下:

define([ 'angular' , 'angular-ui-router' ] , function( angular ){

    window.name = 'NG_DEFER_BOOTSTRAP';
    var isloaded = false;

    var timer = setInterval(function(){
        angular.element(document).ready(function(){
            angular.bootstrap(document,["My_app"]);
            isloaded = true;
        });

        if(isloaded === true){
            clearInterval(timer);
        }
    },300);

    return angular.module('My_app',['ui.router']);
});

感觉还是gulp好点,requirejs略微有点麻烦,每个js文件都要写额外的代码,不喜欢。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进