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 № 1Vous 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