2013-07-01 40 views
0

變量我想跟進angularjs建議(http://docs.angularjs.org/guide/module):角逼我做出窗口

雖然上面的例子很簡單,它不會擴展到大 應用。相反,我們建議你打破你的應用程序 多個模塊是這樣的:

服務模塊,爲服務聲明的指令模塊,用於 指令申報的過濾模塊,用於過濾申報並依賴於 應用級模塊上述模塊,以及哪些具有初始化代碼。

只包含

所以我創建services.js文件:

window.myservices = angular.module('services', []); 

然後,我增加了一些服務,其中每個服務文件開頭:

window.myservices.factory('service1', function() { 
    .... 
}); 

我做了對於filters.js和directives.js也是如此。

在我app.js文件我做:

window.App = angular.module('app', ['services', 'filters', 'directives']). 
    // run \ config \ whatever 

如何我可以不用在窗口中進行的變量?

回答

0

正如所說的Stewie,您可以使用angular.modue('service',[]);

但是你只需要做到這一點的第一個加載的文件,像這樣:

file1.js

var mod = angular.module('service',['dependancy']); 

file2.js

var mod = angular.module('service'); 

的index.html

<script src="/scripts/file1.js"></script> 
<script src="/scripts/file2.js"></script> 

另一種選擇是t Ø使用命名空間...

file1.js

var mod = angular.module('service.part1',[]); 

file2.js

var mod = angular.module('service.part2',[]); 

main.js

var mod = angular.moduel('service', ['service.part1','service.part2']); 

EDIT(plunker):

http://plnkr.co/edit/i75A5CQeSptQjaxvR8qi?p=preview

+0

我不認爲你瞭解我。我在詢問如何創建多個服務以及如何將它們「附加」到位於不同js文件中的一個服務模塊中。 – Naor

+0

@Naor,服務被「附加」到傳遞給'angular.module()'的數組中。第一個參數定義了一個模塊,第二個參數是它的依賴關係數組。所以你不需要在window上引用它們。*' –

+0

好吧,我想我明白你在說什麼。但是如果我有X服務,這最終會導致創建X模塊,而我只需要一個模塊。更重要的是,每當我創建一個新的服務時,我都必須記得將這個模塊添加到主服務模塊中。 – Naor

1

沒有必要對全局所有:

// Define your services 
angular.module('services', []) 
    .factory('service1', function(){}) 
    .factory('service2', function(){}); 

// Define you main app module and specify the dependencies 
angular.module('MyApp', ['services']); 
+0

只有當我將所有服務聲明爲單個文件時,這纔是正確的。我想分開文件並將每個服務放在不同的文件中。但是在每個文件中,我如何引用服務模塊?我需要寫下如下內容:(???)。工廠('service1',function(){}) – Naor