2014-10-08 49 views
0

我有一個提琴手來顯示我的設置。 ngRoute RouteController只被調用一次

http://jsfiddle.net/smartdev101/dt6kkyy3

問題是routeController函數獲取調用僅在頁面加載一次,但隨後在哈希變化(如鏈接點擊的結果),該函數routeController是沒有得到再次調用。

我已經在另一個ng模塊中生成了我的鏈接,不確定鏈接是否必須與路由器位於同一個模塊中。

<div id="router"> 
    <div ng-view></div> 
</div> 

<div id="navigation" data-ng-cloak> 
     <ul id="folios" data-ng-controller="FoliosController" class="nav nav-pills nav-stacked"> 
      <li data-ng-repeat="folio in folios" ng-class="{active: isActive('/search/{{folio.productId}}')}"> 
       <a href="#/search/{{folio.productId}}">{{folio.title}}</a> 
      </li> 
     </ul> 
     <div ui-view></div> 
    </div> 

編輯:

問題得到了進一步的診斷。任何由ng控制器生成的列表/錨都不會響應作用域之外的哈希更改,而靜態鏈接是。從plunkr鏈接中,「foo」和「bar」點擊觸發控制器,但「abc」和「def」不是。請查閱。問題是如何讓「abc」和「def」(動態鏈接)對變化做出響應。如打算與你有它編碼方式

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

回答

0

的代碼行爲。您在控制器的構造函數中調用routeController,但它在其他任何地方都沒有被調用(路由器也不會這樣做)。

如果需要routeController功能上的每個路由改變被調用考慮結合路徑切換事件:

https://docs.angularjs.org/api/ngRoute/service/ $路線

看看這個普拉克。注意我綁定到stateChangeSuccess,因爲您使用的是ui-router而不是ngRoute。

http://plnkr.co/edit/CiYLqnqAzrXoouMSXkuk

+0

的答覆謝謝@sma,我是比較新的角度,可以請你在我的代碼演示一些幫助。我認爲ngRoute一直在觀看我的網址,並會在hash change – user2727195 2014-10-08 16:55:06

+0

上調用routeController我相信它是_already_ **綁定**來改變配置中的路由,在'when'函數調用 – user2727195 2014-10-08 17:07:30

+0

將plunk添加到我的答案 – sma 2014-10-08 17:17:51

相關問題