angulaire.js - Comment le contrôleur headController de l'en-tête public AngularJS obtient-il les paramètres dans la configuration de routage ?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-15 17:01:23
0
5
652

Par exemple :
Il y a trois contrôleurs dans l'application, ils sont dans une relation horizontale
Le contrôleur A contrôle la partie d'en-tête de la page
Les contrôleurs B et C contrôlent la page de détails, la page d'édition, routage La relation est la suivante

when('/detail/:id', { templateUrl: 'tpls/detail.html', controller: "BController" }).
when('/edit/:id', { templateUrl: 'tpls/edit.html', controller: "CController" }).

L'exigence actuelle est d'obtenir l'identifiant du paramètre dans l'URL de routage du contrôleur A. Comment l'obtenir ?

Mon implémentation actuelle :
J'ai écrit un service et écrit une fonction dans le service. La fonction de cette fonction est d'utiliser $location.path() pour obtenir l'URL actuelle, puis d'utiliser la chaîne La méthode d'interception. est utilisé pour obtenir l'identifiant dans le paramètre Bien que la valeur soit obtenue, il semble qu'il ne devrait pas en être ainsi

Ma tentative :

  • $location a une API, $location.search().name est utilisé pour obtenir les paramètres d'URL actuels, mais cette API ne peut pas obtenir mes paramètres car mon URL a la forme d'index.html# Dans le forme de /detail/1, il ne peut être obtenu sans nom

  • Une autre idée est d'ajouter un contrôleur de niveau supérieur aux trois contrôleurs et de le transférer via le contrôleur parent, mais cela semble inapproprié

曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(5)
小葫芦

Tu ne peux pas mettre l'identifiant dans les cookies

phpcn_u1582

angular-ui obtient exclusivement $stateParams

过去多啦不再A梦

Injectez $route
puis $route.current.params est

给我你的怀抱

http://stackoverflow.com/questions/25370775/exposing-the-current-state-name-with-ui-router


//this watches for state changes
$rootScope.$on('$stateChangeStart', 
   function(event, toState, toParams, fromState, fromParams){
      //do something when state changes
      $yourService.state = toState.name;
      $yourService.postid = toParams.postid;
      console.log(toParams); //this is the stateParams you need
});
给我你的怀抱

Injectez ce service dans $routeParams, puis

$scope.id = $routeParams.id
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal