2015-12-29 40 views
0

我有我作爲聲明的應用程序:這是我注入作爲依賴Angular模塊依賴性 - 澄清?

var app = angular.module('mg.app', ['mg.auth' , 'ui.router' ,'mg.calc' ]); 

mg.authmg.calc是模塊(我的模塊)。

代碼mg.auth

angular.module('mg.auth', ['ui.router']); 
angular.module('mg.auth').config(function ($stateProvider) 
    { 
     $stateProvider.state('signin', { 
      ... 
     }); 
    }); 

代碼mg.calc

angular.module('mg.calc', ['ui.router','ui.bootstrap']); 
angular.module('mg.calc').config(function ($stateProvider) 
     { 
      $stateProvider.state('calc', { 
      ... 
      }); 
     } 

在HTML我有:

<a href ui-sref="calc"> 

當我點擊該鏈接時,它將狀態更改爲calc,我確實看到了期望的結果。

那麼問題在哪裏?

看着我主要模塊(ng.app),如果我刪除mg.calc作爲dependecy有一個錯誤:

enter image description here

但我不明白爲什麼我需要'mg.calc'作爲mg.app的依賴嗎?

我的意思是,當JS引擎看到了mg.calc代碼:

angular.module('mg.calc', ['ui.router','ui.bootstrap']); 
    angular.module('mg.calc').config(function ($stateProvider) 
      { 
       $stateProvider.state('calc', { 
       ... 
       }); 
      } 

它知道,有一個新的calc狀態,應該能夠過渡到鈣。

問題

Functionallity,爲什麼mg.app必須設置mg.calc的依賴?

這並不是說我使用mg.calc一些代碼mg.app

+0

Beacuse在'ng-app'的部分中,您已經調用了'mg.app',因此它只會渲染該模塊及其相關模塊數據。 –

+0

@KunalKakkad「渲染」? –

+0

渲染意味着'將會有效'。我的意思是你在'ng-app'中傳遞的模塊是有效的,並且它的注入/依賴模塊將會生效。 –

回答

1

那是因爲你的角度應用與mg.app模塊,不mg.calc模塊自舉,這就是爲什麼你需要告訴角度說你也需要mg.calc。

+0

因此,即使mg.app不使用mg.calc中的代碼 - 我仍然需要引用該模塊,因爲mg.app是入口點? –

+0

您點擊了鏈接'calc',那就是您使用它的時間。發生了什麼事是,ui路由器試圖找到「calc」的狀態配置,但找不到任何東西。這就是錯誤被拋出的原因。 – sdfacre

+0

但註冊路由狀態的代碼已執行! –