2017-09-12 4 views
0

Je veux effectuer un rechargement d'un itinéraire SEULEMENT lorsqu'il n'y a pas de changement de route, en d'autres termes recharger un contrôleur quand un bouton qui prend son itinéraire est cliqué. À mon avis dans la directive ng-cliquez sur J'appelle la méthode suivante:Incident de feu lorsque la route est inchangée angularjs

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

Le code dans la condition est jamais déclenchée parce qu'il n'y a pas un changement de la route. Je suis un débutant dans angularJS, donc toute aide sera appréciée :)

Répondre

0

Je traiterais les deux choses que vous avez mentionnées ci-dessus séparément.

  1. Sur chaque changement d'itinéraire, faites ce que vous voulez faire.

Enregistrez un écouteur d'événement à l'écoute de routeChangeStart.

$rootScope.$on('$routeChangeStart', function (event, next, prev) { 
    //if logic given what you want to do with the next/prev objects 
}); 
  1. Si un utilisateur clique sur un bouton reload un itinéraire.

html

<button ng-click="reload_route()">reload</button> 

contrôleur

app.controller('myCtrl', function($scope, $route){ 
    $scope.reload_route = function(){ 
     //once again add if logic in here if needed 
     $route.reload(); 
    } 
    }) 

également, dans votre exemple ci-dessus la fonction routeChangeStart $ exécute un rappel et est passé l'événement, à côté, et les objets préc. Vous devriez utiliser ces arguments dans vos instructions if, pas $ route.current ou $ route.next.