2015-06-02 51 views
0

我正在使用刀片模板引擎。我想遵循「每頁一個控制器」的約定來輕鬆處理代碼。 我有一個JS文件,其中有少量控制器將用於所有文件/頁面因此,我包含在我的模板文件中,該文件將在每個頁面中自動生成。 代碼如下錯誤「控制器名稱」不是角js中的函數嗎?

angular.module('MyApp',['angularFileUpload']) 
.factory('MyFactory', ['$http',function($http) { 
    return{ 
     get: function(callback){ 
      $http.get('my-url') 
      .success(function(data) { 
       callback(data); 
      }); 
     } 
    }; 
}]) 
.controller('GlobalController',['$scope','$http','MyFactory',function($scope,$http,MyFactory){ 
    SchoolFactory.get(function(data){ 
     console.log(data); 
    }); 
    // Few Function which will be called in all pages 
}]); 

現在當使用的模板,其包括上述JS,我得到的錯誤創造了新的一頁。這是我創建新的js文件。

angular.module('MyApp',[]) 
.controller('SomeController',['$scope','$http',function($scope,$http){ 
    // Few Function which will be called in all pages 
}]); 

包含此模塊的任何頁面我在控制檯中得到錯誤SomeController不是函數。

請幫幫我。提前致謝。

回答

3

這是我開始使用Angular JS時遇到的同樣的問題。你的代碼有很少的錯誤。

您可以在單個頁面中創建多個angular.module,但只有一個可以具有依賴關係。

angular.module('MyApp',['angularFileUpload']) 

angular.module('MyApp') 

從你的第二模塊中刪除空數組[]。

3
angular.module('MyApp') 
.controller('SomeController',['$scope','$http',function($scope,$http){ 
    // Few Function which will be called in all pages 
}]); 

刪除模塊中的[]。無論何時將數組傳遞給模塊函數,都會重新創建模塊。既然你想添加一些東西到現有的模塊,請將其關閉。

+0

快一點,但答案正確! – LordTribual

相關問題