我想仅在没有路线改变的情况下执行路线的重新加载,换句话说,当点击进入其路线的按钮时重新加载控制器。在我的ng-click指令视图中,我调用以下方法:
this.reload = function() {
$scope.$on('$routeChangeStart', function(event, next, current) {
if($route.current == $route.next) {
$route.reload();
}
})
}
条件内的代码永远不会被触发,因为路径没有变化。我是angularJS的初学者,所以任何帮助都将受到赞赏:)
答案 0 :(得分:0)
我会分别处理你上面提到的两件事。
注册侦听routeChangeStart的事件侦听器。
$rootScope.$on('$routeChangeStart', function (event, next, prev) {
//if logic given what you want to do with the next/prev objects
});
HTML
<button ng-click="reload_route()">reload</button>
控制器
app.controller('myCtrl', function($scope, $route){
$scope.reload_route = function(){
//once again add if logic in here if needed
$route.reload();
}
})
此外,在上面的示例中,$ routeChangeStart函数执行回调并传递event,next和prev对象。您应该在if语句中使用这些参数,而不是$ route.current或$ route.next。