如何重新呈现指令模板和链接功能?

时间:2014-07-29 18:49:31

标签: angularjs angular-ui-router

我正在创建一个导航“树”,它基本上允许您导航到父视图,如此

Home > Planner > Contacts > john.smith@hotmail.com

此列表只是一个普通的<ul>,每次更改视图时都应更改,并允许用户点击上述任何链接进行导航。我正在使用ui-router的{​​{1}}事件来构建我的链接列表,问题是我的指令在每次页面更改时都不会“重新构建”此列表。

有没有办法在每次改变状态时强制指令重新渲染?

TreeNav指令

$stateChangeStart

1 个答案:

答案 0 :(得分:2)

我相信您没有正确设置$watch声明。

您还应该谨慎使用.reversereverse()反转数组中的条目,这可能不是您想要做的,因为它会修改$rootScope上的数组。

您可以使用splice()创建新副本,然后将其反转:

scope.treeNavs = $rootScope.treeNavs.splice().reverse();
$rootScope.$watch('treeNav', function(newVal) {
  scope.treeNavs = newVal.splice().reverse();
});