2016-08-17 69 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')...