在angularjs中添加新模块不起作用

时间:2013-08-12 07:41:23

标签: angularjs angularjs-directive

我正在尝试将新模块添加到我的应用程序中。 我的索引页面的HTML是

<body ng-app="com.app">

在我的app.js

angular.module('mod1', ['ngResource']);
angular.module('mod2', []); //this is module i want to add
var app = angular.module('com.app', ['ngResource','mod1','mod2']);

我的Controllers1.js

var Controllers = angular.module('mod1');
Controllers.controller('ctrl1', function($scope,$http) {});

Controllers.controller('ctrl2', function($scope,$http) {}); //function for module 2

当我尝试将此ctrl2添加到我的“controllers1.js”时,它可以正常工作,但如果我在其他js中添加这个说“controllers2.js”,它就无法正常工作。 我的controllers2.js是

'use strict';

var mymodule = angular.module('mod2');

mymodule.controller('ctrl2', function() {

    console.debug("Testing...");

});

我的问题总结是:当我尝试将我的ctrl2功能添加到新模块时,它无法正常工作并且在firefox控制台上我收到错误

Error: Argument 'ctrl2' is not a function, got undefined 
assertArg@http://localhost:8080/tm-webapp/resources/lib/angular.js:1039 
assertArgFn@http://localhost:8080/tm-webapp/resources/lib/angular.js:1050 
@http://localhost:8080/tm-webapp/resources/lib/angular.js:4802 
update@http://localhost:8080/tm-webapp/resources/lib/angular.js:14198 
Scope.prototype.$broadcast@http://localhost:8080/tm-webapp/resources/lib/angular.js:8307 
updateRoute/<@http://localhost:8080/tm-webapp/resources/lib/angular.js:7463 
qFactory/defer/deferred.promise.then/wrappedCallback@http://localhost:8080/tm-webapp/resources/lib/angular.js:6846 
qFactory/defer/deferred.promise.then/wrappedCallback@http://localhost:8080/tm-webapp/resources/lib/angular.js:6846 
qFactory/ref/<.then/<@http://localhost:8080/tm-webapp/resources/lib/angular.js:6883 
Scope.prototype.$eval@http://localhost:8080/tm-webapp/resources/lib/angular.js:8057 
Scope.prototype.$digest@http://localhost:8080/tm-webapp/resources/lib/angular.js:7922 
Scope.prototype.$apply@http://localhost:8080/tm-webapp/resources/lib/angular.js:8143 
done@http://localhost:8080/tm-webapp/resources/lib/angular.js:9170 
completeRequest@http://localhost:8080/tm-webapp/resources/lib/angular.js:9333 
createHttpBackend/</xhr.onreadystatechange@http://localhost:8080/tm-webapp/resources/lib/angular.js:9304

我被困在这里很久了,请帮助我,我将非常感激。 的问候,

2 个答案:

答案 0 :(得分:2)

确保您的文件加载器(脚本标记,requirejs,无论如何)Controllers1.js就在controllers2.js旁边。

PS:某些操作系统/网络服务器(例如Windows上的karma内的服务器)区分大小写。因此,请尝试为您的文件使用相同的大小写(上部或下部)。

答案 1 :(得分:1)

你可以试试这个plunker http://plnkr.co/edit/tKIPDQ54JDexB7LAJpDR,看看它是否能以你想要的方式运作。