Maison > interface Web > js tutoriel > le corps du texte

Comment transmettre des paramètres à un contrôleur à l'aide de ui-sref dans UI-Router ?

Mary-Kate Olsen
Libérer: 2024-11-07 07:51:03
original
415 Les gens l'ont consulté

How to Pass Parameters to a Controller Using ui-sref in UI-Router?

Transmission de paramètres au contrôleur à l'aide de ui-sref dans UI-Router

Dans UI-Router, transmission de paramètres à un contrôleur via ui-sref est un élément crucial pour le partage de données entre États. Voici comment accomplir cette tâche efficacement :

Pour commencer, définissez l'URL de l'état cible pour inclure des espaces réservés de paramètres à l'aide de la syntaxe deux-points, comme le montre la définition d'état mise à jour ci-dessous :

$stateProvider
.state('home', {
  url: '/:foo?bar',
  ...
Copier après la connexion

Dans cet exemple, l'état « home » attend les paramètres « foo » et « bar » dans le chemin de l'URL.

Ensuite, ajustez le contrôleur pour recevoir ces paramètres correctement :

.controller('MainRootCtrl', function($scope, $state, $stateParams) {
  // ...
  var foo = $stateParams.foo; // Accessing 'fooVal'
  var bar = $stateParams.bar; // Accessing 'barVal'
  // ...
Copier après la connexion

Dans ce contrôleur, nous injectons $stateParams au lieu de $stateParam, ce qui nous donne accès aux paramètres transmis.

De plus, UI-Router fournit également une configuration fine des paramètres via l'objet 'params' au sein de l'état. définition. Cette option vous permet de spécifier des valeurs par défaut, d'imposer des contraintes de type, etc.

Par exemple, considérez cette configuration de paramètres étendus :

.state('other', {
  url: '/other/:foo?bar',
  params: {
    foo: {
      value: 'defaultValue',
      squash: false,
    },
    bar: {
      array: true, // Treat bar as an array
    },
    hiddenParam: 'YES', // Not present in the URL
  },
  ...
Copier après la connexion

Cette configuration montre comment nous pouvons définir des valeurs par défaut pour paramètres et contrôlez leur comportement dans l'URL.

Enfin, n'oubliez pas de transmettre les paramètres lors de la navigation vers l'état souhaité en utilisant soit l'attribut 'ui-sref', soit la méthode '$state.go()' :

<a ui-sref="other({foo: 'fooVal1', bar: 'barVal1'})">...</a>
$state.go('home', {foo: 'fooVal2', bar: 'barVal2'});
Copier après la connexion

En implémentant cette approche, vous pouvez transmettre efficacement des paramètres aux contrôleurs à l'aide de ui-sref dans UI-Router, garantissant ainsi des transitions d'état transparentes et un partage de données au sein de vos applications AngularJS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal