2016-07-29 55 views
0

簡單的角度問題。角度:定義模塊或不

我應該定義一個角度模塊嗎?如果我以某種方式做它,有什麼區別?

例如,說var myApp = angular.module('myFirstApp', []);angular.module('myFirstApp', [])有什麼區別?

如果我使用第二個選項,我知道我所有的工廠等都必須進行點鏈接,是否正確?如.factory('myFactory', function() {})。但是如果我使用第一個選項並定義角度模塊,我必須定義我的工廠等?如myApp.factory('myFactory', function() { });

如果我點鏈(如第二個選項),然後我把所有東西都添加到應用程序的全局名稱空間嗎?但是,在這種情況下定義模塊並添加所有內容的區別是什麼myApp

請澄清和解釋,對於超級簡單的問題抱歉,我認爲這個答案可以爲我綁在一起。

謝謝。

編輯:我想上面的一些問題可以用以下方式解釋:每次使用完整的angular.module()作爲getter和全局變量之間有什麼區別?爲什麼要避免全局變量?

回答

1

您不需要將角度模塊分配給變量。 但是你確實需要像這樣定義它。

angular.module('myModule', []); 

您的工廠不必一點一點地鏈接在一起。您可以像這樣將工廠添加到模塊。

angular.module('myModule').factory('myFactory', function() {}); 

您可以使用angular.module('myModule')獲取模塊並將控制器,工廠等添加到模塊中。

這可以讓你把控制器,工廠等... 在不同的文件。

我希望這可以引導您朝着正確的方向發展。

0

不,他們不必被束縛。這很簡單

angular.module()既是setter又是getter。您提供第二個參數依賴性數組來設置(聲明)新模塊

沒有第二個參數,它是對先前聲明的模塊的引用。

因此,沒有鏈接,你可以這樣做:

// declare new module 
angular.module('myFirstApp', []); 

// add features of module 
angular.module('myFirstApp').controller(...;  
angular.module('myFirstApp').directive(...; 

這是一樣的做:

var app = angular.module('myFirstApp', []); 

app.controller(.... 
app.directive(.... 

但是最佳實踐是避免使用全局變量,使用全angular.module()每個吸時間

它也與使用鏈接相同

angular.module('myFirstApp', []) 
    .controller(.... 
    .directive(.... 
+0

謝謝。這不就是我的意思嗎?就像在你編寫'.controller(...;'這樣做和定義模塊之間的區別是什麼?然後如果我定義模塊,是否必須以同樣的方式定義我的服務/工廠等?也許我'使用'dot chained'這個階段的方法不對嗎? –

+0

不知道你在問什麼 – charlietfl

+0

我想你解釋它的方式,這是第三種方式?除了我提到的兩個問題之外呢?'angular.module ('myFirstApp')。controller(...;'就像點鏈接,但你只是在每個控制器或服務之前添加'angular.module('myFirstApp')'),而不是點鏈接他們? –