我正在学习Angular,我正在尝试使用ui-router建立一个带控制器的状态。我有一个名为app.js的主模块,然后是基于不同内容的子模块。
第一个子模块是diary.js。一切都在使用控制器以外的控制器。状态在UI等中工作。当我直接在diary.js中创建控制器时(例如controller:function(){// stuff},它工作正常)。但是当我尝试为日记状态包含一个已定义的控制器(就像它当前编写的那样)时,我得到以下错误(我无法发布整个错误,因为stackoverflow不会让我拥有那么多链接):
“错误:[ng:areq] errors.angularjs.org/1.2.23/ng/areq?p0=DiaryCtrl&p1=not%20aNaNunction%2C%20got%20undefined 在错误(本机)...
/** diary.js */
'use strict';
(function () {
angular.module('diary', ['ui.router'])
.config(['$stateProvider', function ($stateProvider) {
// States
$stateProvider.state('diary', {
url : '/diary',
templateUrl : 'diary/html/diary.html',
controller : 'DiaryCtrl'
});
}]);
}).call();
这是DiaryCtrl.js(定义的控制器)的代码。
/** DiaryCtrl.js */
'use strict';
angular.module('diary')
.controller('DiaryCtrl', [$scope, $http, function ($scope, $http) {
$http.get('api/json/diaries.html').success(function (data) {
$scope.diaries = data;
}).error(function (status) {
console.log(status);
});
}]);
我很感激任何帮助。如果您需要更多信息,请与我们联系。
答案 0 :(得分:2)
我很确定这是因为$scope
中的注射($http
& DiaryCtrl
)不是字符串:
.controller('DiaryCtrl', [$scope, $http, function ($scope, $http)
应该是:
// Notice the added quotations around the scope and http injections in the array
.controller('DiaryCtrl', ['$scope', '$http', function ($scope, $http) {