2017-04-27 28 views
0

就像controllers模塊「級別」獨立,可以在整個應用程序堆棧中的任何位置使用我想知道是否有一種方法讓子模塊使用父模塊指令,而不必將它們分配爲每個子模塊的依賴關係。父模塊指令是否可以在控制器之類的子模塊中使用?

我是如何希望有指令的工作(在 controller的視圖)的

例子:

angular.module('app.child').config(function($stateProvider) { 
    $stateProvider.state('child', { 
    url: '/child', 
    views: { 
     'header': { 
     controller: 'parentController', 
     templateUrl: 'child.html' 
     } 
    } 
    }); 
}); 

angular.module('app').controller('parentController', function() { 
    console.log('test'); 
}); 

因此,我想知道是,如果

angular.module('app', ['app.child']); 
angular.module('app.child', ['ui.router']); 

也可以寫成

angular.module('app', ['app.child', 'ui.router']); 
angular.module('app.child', []); 

以某種方式ui.router仍然可供小孩使用模塊。

如果我在我現有的項目中這樣做,我會得到$injector錯誤。

回答

1

正如控制器模塊「級別」獨立的,可以在任何地方

這是真實的,那就是你永遠不應該做的事用 。 模塊應該獨立於父模塊並且獨立 - 它應該聲明所有必需的依賴關係。

I.e.如果你有兩個模塊:app和app.child,並且在app.child的某個地方,你有:<div ui-sref=...比你的app.child必須依賴於ui-router。 (這將仍然工作,如果它不,但父母 - 但這並不意味着這是正確的方式)

N.B.很多應用程序可以在單個模塊中保留。你確定你需要一個以上嗎?

+0

我剛剛聽說使用多個模塊是構建應用程序的良好習慣,所以我想讓地面結構更好。但是,如果我有5個子模塊,並且每個模塊都使用可以說'ui-router'作爲依賴關係,它是否會減慢我的應用程序的性能?或者我應該將它們組合在一起? – PhyCoMath

+0

不,它不會慢,你可能有多次相同的依賴 - 它的好。使用多個模塊 - 就像Maven/JAVA中的多個項目一樣,您可能擁有它們,但您可能沒有。這是關於代碼組織的更多內容,直到您在多個應用/用戶之間分享您的代碼。 (像npm /鮑爾) –

+0

太棒了!感謝您的幫助,我肯定會記住這一點:) – PhyCoMath

相關問題