Comment appeler une fonction dans AngularJs lorsque la route des matches?
$routeProvider.when('/ticket', {
controller: TicketController,
templateUrl: Routing.generate('ticket_list')
});
affiche une liste simple, où chaque entrée est sélectionnable. Toutefois, sur les sélectionnez pas de vue est chargé. Chaque chose est à ticket_lost template
. Le modèle a certains champs cachés sont révélés lors de l'entrée est cliqué.
Je peux définir l'entrée est sélectionné en interne par la mise en
selectedTicket = 1;
Donc quand il y a une route comme
/ticket/1
Je veux appeler une fonction qui définit selectedTicket à 1. Est-ce possible? Comment faire? Que dois-je modifier dans le service de routage?
Pourriez-vous donner plus de renseignements sur votre demande - vous faites référence à des éléments qui n'ont pas être expliqué dans votre question - peut-être un plunkr ou de jouer trop pourrait être fournie?
OriginalL'auteur Artjom Zabelin | 2013-05-05
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à $routeParams service.
Il permet la mise en place de l'itinéraire avec des paramètres qui seront analysés par le service:
Dans votre contrôleur:
Il devrait travailler avec les 2 routes qui utilisent le même Contrôleur, un avec :ticketId param, sans
Ouais, écoutez @Narretz : vous aurez besoin des 2 voies. Mise à jour de la réponse
Evseev est-ce la meilleure façon de trouver la bonne méthode à appeler lorsque l'URL change, il n'y a pas de meilleure façon? Vous êtes juste vérifier si ticketId existe dans le $routeParams, que faire si j'ai beaucoup d'URL avec
ticketId
s ?si vous avez beaucoup d'urls ayant le même nom de paramètre
tickerId
, mais en le faisant d'une logique différente, vous feriez mieux d'avoir un des contrôleurs distincts pour eux. Un contrôleur avec trop de logique va être plus difficile à maintenir, à l'échelle et de test.OriginalL'auteur Dmitry Evseev