2014-05-30 66 views
0

直到最近,我一直在把我的所有功能放到一個大的JS文件中。我現在試圖將它們分解成小模塊,以便讓我的應用程序更具可移植性。AngularJS模塊化設置

我有下面的代碼我的核心js文件(main.js):

var App = angular.module("app", ['ui.bootstrap', 'angularMoment', 'chieffancypants.loadingBar', 'ngAnimate', 'ui.sortable', 'ngSanitize'], function ($interpolateProvider, $httpProvider) { 
     $interpolateProvider.startSymbol('[['); 
     $interpolateProvider.endSymbol(']]'); 
     $httpProvider.defaults.transformRequest = function (data) { 
      if (data === undefined) { 
       return data; 
      } 
      return $.param(data); 
     }; 
     $httpProvider.defaults.headers.post['Content-Type'] = '' 
     + 'application/x-www-form-urlencoded; charset=UTF-8'; 
     $httpProvider.defaults.headers.post['X-Requested-With'] = '' 
     + 'XMLHttpRequest'; 
    }); 

在另一個文件(即blog.module.js),我有以下幾點:

 (function(window, angular, undefined) { 

     'use strict'; 

     angular.module("app", []) 
     .controller('Blog', ['$scope', function ($scope) { 
      alert('test'); 
     }]); 
    }); 

當main.js文件與其所有依賴項一起加載時,第二個不會加載。控制器基本上找不到。任何人都可以給我指出我可能會出錯的地方嗎?

感謝

+0

我結束了使用:[code]'use strict'; angular.module( 「應用程序」)控制器( '博客',函數($範圍,$日誌) { $ scope.hello = 「測試」; $ log.log($ scope.hello); }); [/ code]哪些工作。無法找到格式化的方法。 – user1297396

回答

0

在blog.module.js的sintax看起來就像你正在試圖創建具有相同名稱的「應用」兩個模塊。 更改控制器模塊這樣

(function(window, angular, undefined) { 

'use strict'; 

angular.module("app") 
.controller('Blog', ['$scope', function ($scope) { 
    alert('test'); 
}]); 
}); 
0

我給你報:

App = angular.module("app", ['ui.bootstrap', 
... 
angular.module("app", []) 

重新聲明一個模塊,您可以重新

App = angular.module("app", ['ui.bootstrap', 
... 
angular.module("app") 

創建另一個

App = angular.module("app", ['ui.bootstrap', 'app.controller' 
... 
angular.module("app.controller")