recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Problème de transmission de valeur dans une page angulaire

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 ?

巴扎黑巴扎黑2784 Il y a quelques jours642

répondre à tous(4)je répondrai

  • phpcn_u1582

    phpcn_u15822017-05-15 16:54:32

    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

    .

    répondre
    0
  • 巴扎黑

    巴扎黑2017-05-15 16:54:32

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

    répondre
    0
  • 大家讲道理

    大家讲道理2017-05-15 16:54:32

    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

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-15 16:54:32

    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

    répondre
    0
  • Annulerrépondre