Javascript 角度+;RequireJS应用程序出现错误;主控制器不是一个功能“;
好吧,情况就是这样。我试图从头开始构建一个Javascript 角度+;RequireJS应用程序出现错误;主控制器不是一个功能“;,javascript,angularjs,requirejs,Javascript,Angularjs,Requirejs,好吧,情况就是这样。我试图从头开始构建一个AngularJS应用程序,并将其与RequireJS相结合。这就是一切都要走下坡路的地方 发生的情况是,我得到一个错误,说mainController不是一个未定义的函数。但是有一段时间,就在一秒钟内,我可以在浏览器的控制台中看到一条消息,告诉我一些来自控制器的信息,就在错误显示之前 这怎么可能 就像我说的,我在一个未知的领域,我不知道去哪里找,所以我要给你们我所有的文件^^ 振作起来代码就要来了 文件树 app/modules/main.js
AngularJS
应用程序,并将其与RequireJS
相结合。这就是一切都要走下坡路的地方
发生的情况是,我得到一个错误,说mainController不是一个未定义的函数
。但是有一段时间,就在一秒钟内,我可以在浏览器的控制台中看到一条消息,告诉我一些来自控制器的信息,就在错误显示之前
这怎么可能
就像我说的,我在一个未知的领域,我不知道去哪里找,所以我要给你们我所有的文件^^
振作起来代码就要来了
文件树
app/modules/main.js
require.config({
paths: {
// Load dependencies
'angular': '../lib/Angular-1.4.7/angular.min',
'angular-route': '../lib/Angular-1.4.7/angular-route.min',
// Load modules
'app': '../app/modules/core/app'
},
shim: {
'angular-route': {
deps: ['angular']
},
'app': {
deps: ['angular-route']
}
}
});
require(['app'], function () {
// The application has been loaded
});
app/modules/core/app.js
define(function () {
var app = angular.module('app', ['ngRoute']);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'app/modules/core/views/home.html',
controller: 'homeController'
})
.when('/home', {
templateUrl: 'app/modules/core/views/home.html',
controller: 'homeController'
});
}]);
require(['../app/modules/core/controllerReferences'], function (references) {
require(references, function () {
angular.bootstrap(document, ['app']);
});
})
});
app/modules/core/controllerReferences.js
define(function () {
return [
'modules/core/controllers/mainController',
'modules/core/controllers/homeController'
];
});
app/modules/core/controllers/mainController.js
define(function () {
var app = angular.module('app', []);
app.controller('mainController', ['$scope', function ($scope) {
console.log('mainController at your service');
}]);
});
编辑
我收到的错误
Error: [ng:areq] http://errors.angularjs.org/1.4.7/ng/areq?p0=mainController&p1=not%20a%20function%2C%20got%20undefined
at Error (native)
at http://localhost:3644/lib/Angular-1.4.7/angular.min.js:6:416
at qb (http://localhost:3644/lib/Angular-1.4.7/angular.min.js:22:131)
at Sa (http://localhost:3644/lib/Angular-1.4.7/angular.min.js:22:218)
at http://localhost:3644/lib/Angular-1.4.7/angular.min.js:80:81
at O (http://localhost:3644/lib/Angular-1.4.7/angular.min.js:59:501)
at K (http://localhost:3644/lib/Angular-1.4.7/angular.min.js:60:338)
at g (http://localhost:3644/lib/Angular-1.4.7/angular.min.js:54:410)
at g (http://localhost:3644/lib/Angular-1.4.7/angular.min.js:54:433)
at g (http://localhost:3644/lib/Angular-1.4.7/angular.min.js:54:433)
(anonymous function) @ angular.min.js:107
(anonymous function) @ angular.min.js:80
n.$apply @ angular.min.js:133
(anonymous function) @ angular.min.js:20
e @ angular.min.js:39
d @ angular.min.js:19
zc @ angular.min.js:20
(anonymous function) @ app.js:18
context.execCb @ require.js:1678
Module.check @ require.js:878
(anonymous function) @ require.js:1128
(anonymous function) @ require.js:131
(anonymous function) @ require.js:1178
each @ require.js:56
Module.emit @ require.js:1177
Module.check @ require.js:929
Module.enable @ require.js:1165
Module.init @ require.js:783
callGetModule @ require.js:1192
context.completeLoad @ require.js:1571
context.onScriptLoad @ require.js:1699
您的错误在控制器定义中
var-app=angular.module('app',[])代码>创建新模块
var-app=angular.module('app')代码>检索现有模块
因此,您的mainController.js
应该如下所示:
define(function () {
var app = angular.module('app');
app.controller('mainController', ['$scope', function ($scope) {
console.log('mainController at your service');
}]);
});
基本上,你所做的是创建你的应用程序模块三次-一次在开始,两次以上当你包括你的控制器
有关更多信息,请参阅 嗯,你能提供更多关于错误的信息吗?通常,如果抛出错误,您将获得文件、行号和堆栈跟踪。我当然可以,只需更新问题^^^^即可。最初我以为您(在HTML中)有一个对未定义控制器的引用,但很明显,如果名称匹配并且您在控制台中有输出,那么这就没有意义了。这是一个有趣的问题:)