路线未改变时的火灾事件

时间:2017-09-12 03:00:22

标签: javascript angularjs mean-stack angularjs-ng-route

我想仅在没有路线改变的情况下执行路线的重新加载,换句话说,当点击进入其路线的按钮时重新加载控制器。在我的ng-click指令视图中,我调用以下方法:

this.reload = function() {
  $scope.$on('$routeChangeStart', function(event, next, current) {
    if($route.current == $route.next) {
      $route.reload();
    }
  })
}

条件内的代码永远不会被触发,因为路径没有变化。我是angularJS的初学者,所以任何帮助都将受到赞赏:)

1 个答案:

答案 0 :(得分:0)

我会分别处理你上面提到的两件事。

  1. 在每条路线上,做任何你想做的事。
  2. 注册侦听routeChangeStart的事件侦听器。

    $rootScope.$on('$routeChangeStart', function (event, next, prev) {
        //if logic given what you want to do with the next/prev objects
    });
    
    1. 如果用户点击按钮重新加载路线。
    2. 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。