2014-03-02 45 views
0

問題: 爲什麼角度會讓您將控制器分配給路由?


我的想法:

爲什麼不只是對模板的控制?特別是該模板的最高級別。我錯過了什麼?

根據我的理解,這種方式更有意義!

我目前在做什麼:

當模板被渲染它自帶的最高水平的NG-控制器屬性(我用這!)。我應該閱讀引擎蓋下是否有什麼內容?

+0

可能重複http://stackoverflow.com/questions/21976266 /爲什麼要做的角度js路由需要你引用一個控制器) – Stewie

+0

問題:爲什麼你問相同的確切問題[兩次](http://stackoverflow.com/questions/21976266 /爲什麼此結果的棱角-JS-路由需要,您對引用-A-控制器#comment33301510_21976266)? – Stewie

回答

1

當你聲明一個簡單的對模板控制器像

$routeProvider.when('/', { 
    templateUrL: '...', 
    controller: '...' 
}); 

你可以毫無痛苦地宣佈你的模板中的控制器。沒有「引擎蓋下」的行爲,最終結果將完全相同。但是當你需要更復雜的東西時,問題就會開始增加

首先,假設您的控制器在開始之前需要滿足一些條件才能滿足要求。

$routeProvider.when('/', { 
    templateUrl: '...', 
    resolve: { 
    //do something before your controller kicks off 
    }, 
    controller: '...', 
}); 

這個解決條件可能是任何你想要的。說,要求用戶登錄。您可以在控制器內部處理這種邏輯,但一旦您需要任何其他路徑來解決相同的情況,您將不得不復制您的代碼。

$ routeProvider在配置中公開的另一個特性是controllerAs語法。

參見「路線」在「參數」進一步信息部分http://docs.angularjs.org/api/ng/directive/ngController

的[爲什麼角JS路線需要你舉一個控制器?(