2016-08-17 36 views
0

运行我的应用程序时出现错误:参数'AppCtrl'不是一个函数,没有定义 - 我相信它与控制器文件的分离有关系吗?分离AngularJS控制器文件?

好了,我有我的第一个文件:app.js这样的:

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){ 

}]); 

我在做什么错?不可能似乎相当了解?

回答

1

您可以将您的app.js视为您定义模块的部分。控制器文件应该添加到模块中(不包含“,[]”,因为这会创建模块)。

或许你也应该在你的控制器

angular.module('zerochili') 
.controller('AppCtrl', etc. 

所以这样做,删除这些:从app.js 'zerochili.controllers', 'zerochili.services', 'zerochili.directives' 并添加控制器,服务和指令到像上面这样的'zerochili'模块。

例如,如果您想保留'zerochili.controllers',请确保您不要创建此模块两次,即两次使用angular.module('zerochili.controllers',[])。

+0

因此,而不是引用zerochili.controllers,我应该引用只是zerochili,这就是我在app.js中做什么? – nuffsaid

+0

其实每次你把[],你正在创建一个新的模块 – DMCISSOKHO

+0

这似乎是做伎俩:) Thx男子.... – nuffsaid

1

这只是因为您要建立与[]

一个新的模件,你可以在你的app.js年底建成

angular.module('zerochili.controllers', []); 
angular.module('zerochili.directives', []); 
angular.module('zerochili.services', []); 

,然后用它是这样的:

angular.module('zerochili.controllers')...