运行我的应用时遇到错误:参数' AppCtrl'不是一个函数,未定义 - 我相信它与控制器文件的分离有关?
好的,所以我在我的第一个文件中:app.js this:
angular.module('zerochili', [
'ionic',
'zerochili.controllers',
'zerochili.services',
'zerochili.directives'
])
然后我有一些不同的控制器文件 - 让我们把文件拿到AppCtrl是 - 这看起来如下:
angular.module('zerochili.controllers', [])
.controller('AppCtrl', ['$scope', '$ionicModal', '$timeout', function ($scope, $ionicModal, $timeout){
}])
另一个文件fx如下:
angular.module('zerochili.controllers', [])
.controller('LoginCtrl', ['$scope', '$state', '$ionicPopup', '$timeout', function($scope, $state, $ionicPopup, $timeout){
}]);
我做错了什么?似乎很难弄明白吗?
答案 0 :(得分:1)
您可以将app.js视为定义模块的部分。控制器文件应该添加到模块(没有“,[]”,因为这会创建模块)。
您可能应该在控制器中执行此操作
angular.module('zerochili')
.controller('AppCtrl', etc.
所以,从app.js中删除这些:'zerochili.controllers','zerochili.services','zerochili.directives',并将你的控制器,服务和指令添加到'zerochili'模块中,如上所述。
如果你想保留,例如'zerochili.controllers',请确保你没有两次创建这个模块,即有两次angular.module('zerochili.controllers',[])。
答案 1 :(得分:1)
这只是因为您正在使用[]
你可以放在app.js的末尾
angular.module('zerochili.controllers', []);
angular.module('zerochili.directives', []);
angular.module('zerochili.services', []);
然后像这样使用它:
angular.module('zerochili.controllers')...