ngRoute RouteController只被调用一次

时间:2014-10-08 16:34:39

标签: angularjs ngroute angularjs-ng-route

我有一个小提琴手来展示我的设置。

<击> 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

1 个答案:

答案 0 :(得分:0)

代码的行为与您编码的方式一致。你在控制器的构造函数中调用routeController,但它没有在其他任何地方调用(路由器也不会这样做)。

如果您需要在每个路由更改时调用routeController函数,请考虑绑定到路由更改事件:

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

看看这个插头。注意我绑定了stateChangeSuccess,因为你使用的是ui-router而不是ngRoute。

http://plnkr.co/edit/CiYLqnqAzrXoouMSXkuk