重新加载关于param更改的视图

时间:2016-09-17 20:50:25

标签: angularjs

由于某种原因,当我更改URL参数时,控制器和视图都没有重新加载。我所做的是打开 / events / 1 ,然后打开 / events / 2 ,并期望 currentDate 更新,但它没有:(

我的状态配置:

.state('events', {
    url: "/events",
    controller: 'EventsCtrl',
    templateUrl: "Content/Directives/Navigator/navigator.html",
})
.state('events.event', {
    url: "/{id:int}",
    reload: true,
    template: '{{currentDate}}'
});

我的控制器:

function NavigatorCtrl($scope) {
    $scope.currentDate = new Date();
}

navigator.html:

<div class="row">
    <h3>Navigator</h3>
    <ui-view/>
</div>

为什么不更新?如何强制状态更新每个URL参数更改的视图?
注意,我写了“reload:true”但它可能没有效果,因为它通常在调用state.go()时用于选项。
ps:我知道我可以转换这个“$ scope.currentDate = new Date();”一个函数,但想知道描述的行为是否正常......

1 个答案:

答案 0 :(得分:0)

您可以侦听位置更改,并在触发控制器后重新加载控制器。

   $scope.$on('$routeChangeSuccess', function () {
       $state.transitionTo($state.current, $stateParams, { reload: true, inherit: true, notify: true });
   });

应该有效,但我没有在plunker中测试它。如果你可以提供我的应用程序的plunker我可以完成你的例子。希望,它会对你有帮助!