/ / AngularJS, $ scope dans la course - angularjs, scope

AngularJS, $ scope dans la course - angularjs, scope

Je suis nouveau à AngularJS.

En fait, je vais avoir une fonctionnalité qui estcommun à tous les contrôleurs, j'ai donc gardé ce morceau de code dans la méthode d'exécution. Ce code spécifie de naviguer vers une autre page quand une condition est remplie, mais là mon $location.path() ne fonctionne pas alors j'ai gardé $scope.$apply après ça, ça m'a fait naviguer ... (ça marche quand je l'ai gardé dans le contrôleur).

Mais quand je le mets en course son erreur de lancer à propos de $scope (mais sans $ scope, il n'y a pas de navigation).

 if(prevPath=="/menupage")
{

$location.path("/restaurant");
$scope.$apply() ;
}

else if(prevPath=="/restaurant")
{

$location.path("/login");
$scope.$apply() ;

}

else if(prevPath=="/menucategory")
{

$location.path("/menupage");
$scope.$apply() ;
}

else if(prevPath=="/menucategorylist")
{

$location.path("/menucategory");
$scope.$apply() ;
}

else if(prevPath=="/shoppingcart")
{

$location.path("/menucategory");
$scope.$apply() ;
}

else (prevPath=="/item")
{

$location.path("/menucategory");
$scope.$apply() ;

}

Je pense qu'il n'y a pas d'autre choix que de mettre le code en run ... Mais $scope ne fonctionne pas.

Y a-t-il une autre méthode comme mettre ce code dans une fonction et appeler depuis run (peut-on appeler une méthode qui est dans sevice from run)?

Réponses:

0 pour la réponse № 1

Vous devez utiliser $route.reload();

au lieu de $scope.$spply();

voir

if(prevPath=="/menupage")
{

$location.path("/restaurant");
$route.reload();
}
.
.
.

Et doit spécifier le $route dans le monde entier