我正在尝试将新模块添加到我的应用程序中。 我的索引页面的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
我被困在这里很久了,请帮助我,我将非常感激。 的问候,
答案 0 :(得分:2)
确保您的文件加载器(脚本标记,requirejs,无论如何)Controllers1.js
就在controllers2.js
旁边。
PS:某些操作系统/网络服务器(例如Windows上的karma内的服务器)区分大小写。因此,请尝试为您的文件使用相同的大小写(上部或下部)。
答案 1 :(得分:1)
你可以试试这个plunker http://plnkr.co/edit/tKIPDQ54JDexB7LAJpDR,看看它是否能以你想要的方式运作。