2014-10-08 50 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

相关问题