angulaire.js - Problème de transmission de valeur dans une page angulaire
巴扎黑
巴扎黑 2017-05-15 16:52:32
0
4
639

S'il vous plaît, parlez-moi de

dans angulaire-ui-route
$state.go('xxx',{id:'1'})

Seule cette simple chaîne peut-elle être transmise ?
Si je veux transmettre un objet, comment dois-je utiliser des variables globales ?

巴扎黑
巴扎黑

répondre à tous(4)
phpcn_u1582

Non seulement vous pouvez transmettre des chaînes simples, mais bien sûr, vous pouvez également transmettre des objets

  1. Le nom du paramètre indiqué dans la configuration du routeur. Prenons l'exemple de ui-router

    .
    $stateProvider.state('state1', {
        url: '/path/:id', // 这个地方用简单字符串
        templateUrl: '/path/to.html',
        params: {
            obj: null // 这个地方就可以随便你用了. 因为这个参数没在state的url中体现出来
        }
    }).
    
  2. Utilisez $state pour changer de page

    $state.go('state1', {
        id: '22',
        obj: {
            key: 'value'
        }
    });
    
  3. Utilisez $stateParams dans le contrôleur pour obtenir les paramètres

    console.log($stateParams.obj)
    

Bien entendu, si vous transmettez des paramètres qui ne sont pas reflétés dans l'URL, les paramètres ne seront pas disponibles lors d'opérations telles que le retour en arrière

.

Vous pouvez utiliser la méthode de @whosesmile pour fonctionner. Utiliser le service. LZ peut jeter un œil au $cacheFactory intégré d'angular. Utilisez-le pour générer un cache et effectuer put get remove removeAll et d'autres opérations

.
巴扎黑

http://stackoverflow.com/a/25999849/2586541

大家讲道理

Généralement deux options
1. Variables globales, c'est-à-dire utilisant $rootScope
2. Utilisez le service. Étant donné que le service est une instance unique et ne sera pas détruit, vous pouvez définir un service de données de cache général pour accéder aux données. service.set(clé, valeur) dans le contrôleur qui doit transférer les données. service.get('key')

dans le contrôleur qui a lu les données précédentes
伊谢尔伦

J'ai oublié quelle version ui-router a ajouté la méthode suivante pour conserver les paramètres dans l'url
1.$state

 $state.go("state",{datas:{ID:data1,NAME:data2}})

2. Configurer le routeur

.state('state',{
url:'path/{datas:json}',
params:{'datas':null}.
...
})

3. Utilisez $stateParam.datas pour obtenir

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal