在angularjs中加载多个模块

时间:2015-07-20 11:13:25

标签: javascript angularjs node.js module

我经常收到此错误 -

https://docs.angularjs.org/error/ $注射器/ NOMOD?P0 =交互式主

项目结构(有多个人开发,所有新的angularjs)看起来像这样 -

public
   |--css, font-awesome
   |--js (where angular.min.js and other jquery libraries are)
   |--views (where html for each pages are)
        |--myHTMLcontents
        |--js
index.html

index.html拥有自己的data-ng-app名称,并在app.js文件中使用。 我在views文件夹中有我的HTML文件,相应的js文件也在views文件夹中。 我试着用

创建
angular.module('myApp').controller(....

但我想你应该只创建一次angular.module(在app.js中),但我仍然不确定如何在app.js中添加'myApp'。

我试着这样做:

(function () {
    angular.module('data-ng-app Name', [
        'ui.router',                    // Routing
        'oc.lazyLoad',                  // ocLazyLoad
        'ui.bootstrap',                 // Ui Bootstrap
        'myApp'
    ])
})();

nodejs服务器不会抛出错误,但页面上没有显示任何内容(在我添加'myApp'之后)。 你是怎么解决的?

2 个答案:

答案 0 :(得分:0)

您需要创建模块' myApp'一次,然后在app.js中运行它 下面是一个例子。

angular.module('myApp', []).run()

然后在你的控制器中

angular.module('myApp.controllers', []).controller('RegisterCtrl', function () {});

答案 1 :(得分:0)

首先确保在将索引注入另一个模块之前声明索引中的myapp模块文件:

<script src="js/myapp.js"></script>
<script src="js/my-module-injecting-myapp.js"></script>

然后有两种方式: 第一个是按照你的方式直接调用模块:

angular.module('myApp').controller(....

第二个以及我过去做的是将其声明为变量:

var myAppModule = angular.module('myApp', []);

然后声明一个控制器,服务,等等,只需调用变量:

myAppModule.controller("myAppController", function(){...

最后一件事,我不知道是否是一个例子,但不要用空格声明你的模块名称:

angular.module('data-ng-app Name', [....

应该是:

angular.module('myModuleNamewithoutSpace', [....