2014-03-13 38 views
4

我有一個相當小的角JS應用程序,它的工程很好,但我想添加一些依賴的例如bootstrap.ui。這是我的模塊的開始,這很好用!依賴的打破應用程序

angular.module('awesomefeed') 
    .controller('MainCtrl', function ($scope, $http) { 

但是當我添加的依賴性的意見停止工作,控制器永遠不會被調用(用調試器檢查)。

angular.module('awesomefeed',['ui.bootstrap']) 
    .controller('MainCtrl', function ($scope, $http) { 

即使有一個空的依賴關係,問題仍然存在。

angular.module('awesomefeed',[]) 
    .controller('MainCtrl', function ($scope, $http) { 

我發現了一些教程,他們都認爲這應該工作,我使用嚴格模式,我不知道這是否會影響這一點。

編輯:我解決了這個問題,正如George Stocker指出回購會隨着時間的推移會發生變化,所以我要在這裏描述我的修復方案,以適用於未來的參考。

我在兩個地方調用angular.module,首先在app.js和controllers/main.js文件中調用。這些電話是這樣的:

//file:app.js 
angular.module('awesomefeed', [ 
    'ngCookies', 
    'ngResource', 
    'ngSanitize', 
    'ngRoute' 
]).config(function ($routeProvider) { 

//file:controllers/main.js 
angular.module('awesomefeed') 
    .controller('MainCtrl', function ($scope, $http) { 

我想添加其他的依賴,所以我說[「ui.bootstrap」]在/controller/main.js模塊電話,有什麼我沒有意識到創建和檢索模塊的區別。 (AngularJS docs creation and retrieval of a module)。 Main.js檢索已經創建的angular.module('awesomefeed'),但是當我將這個依賴列表添加到調用中時,它停止了對已經存在的angular.module('awesomefeed')的調用,而是成爲了創建調用它會用新創建的幾乎空的angular.module('awesomefeed',['ui.bootstrap'])覆蓋angular.module('awesomefeed')。

解決方法是將依賴項添加到app.js中創建調用的依賴項列表中。

+0

您是否在瀏覽器中運行代碼並在控制檯中查找錯誤? – JeffryHouser

+1

@Elian我們需要在問題本身中重現問題的所有代碼。當您的源代碼回購更改時,此問題將變得無用,因爲它不會向未來的訪問者展示問題所在。 –

+0

@GeorgeStocker Phil Sandlers答案解決了我的問題,我會在有空的時候更新問題以包含問題代碼。 –

回答

4

假設你的代碼是最新的鏈接,它看起來像您引用兩個腳本/ app.js腳本/控制器/ main.js

這些都似乎添加模塊「awesomefeed」。我猜這就是問題所在。

+0

這解決了我的問題,謝謝!我在原始答案中加入了一個擴展解釋。 –