我有一个小提琴手来展示我的设置。
<击> 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”(动态链接)也响应变化。
答案 0 :(得分:0)
代码的行为与您编码的方式一致。你在控制器的构造函数中调用routeController
,但它没有在其他任何地方调用(路由器也不会这样做)。
如果您需要在每个路由更改时调用routeController
函数,请考虑绑定到路由更改事件:
https://docs.angularjs.org/api/ngRoute/service/ $路线
看看这个插头。注意我绑定了stateChangeSuccess,因为你使用的是ui-router而不是ngRoute。