recherche

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

Pourquoi ne puis-je pas transmettre de paramètres entre l'État parent et enfant via $stateParams ? Est-ce lié à la relation père-fils entre État ?

  1. Paramètres de routage (il existe une relation parent-enfant entre les deux Etats) :

.state("tab.my-profile", {
  url: "/my/profile",
  views: {
    "tab-my": {
      templateUrl: "templates/tab-my-profile.html",
      controller: "MyProfileCtrl"
    }
  }
})
  .state("tab.my-profile-mobileinput", {
    url: "/my/profile/mobileinput",
    views: {
      "tab-my": {
        params: {"mobile": null}
        templateUrl: "templates/util-mobile-input.html",
        controller: "MobileInputCtrl",
      }
    }
  })

2. Code dans le contrôleur de l'État mère :

.controller("MyProfileCtrl", function ($scope, $state) {
  $scope.goToMobileInput = function () {
    $state.go("tab.my-profile-mobileinput", {"mobile": "123456"})
  };
})

3. Code dans le contrôleur de l'État enfant :

.controller("MobileInputCtrl", function ($scope, $stateParams) {
  alert($stateParams.mobile);  // undefined
})

Peut sauter vers le sous-état, mais ne peut pas recevoir de paramètres dans le contrôleur du sous-état (le résultat obtenu lors de l'accès aux paramètres est indéfini, pas "123456"). Après avoir lu les informations sur Internet, cette écriture devrait être correcte. Est-ce lié à la relation père-fils entre l'État ?

淡淡烟草味淡淡烟草味2778 Il y a quelques jours965

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

  • 黄舟

    黄舟2017-05-27 17:46:33

    Il y a un problème avec la définition de votre routeur. Les paramètres doivent être au même niveau que l'URL et les vues, comme le nom l'indique, spécifiez l'interface utilisateur. Si vous y spécifiez des paramètres, il y a un problème. au suivant :

      .state("tab.my-profile-mobileinput", {
        url: "/my/profile/mobileinput",
        params: {"mobile": null},
        views: {
          "tab-my": {
            templateUrl: "templates/util-mobile-input.html",
            controller: "MobileInputCtrl"
          }
        }
      })

    répondre
    0
  • ringa_lee

    ringa_lee2017-05-27 17:46:33

    $broadcast, je me souviens que cela devrait utiliser la diffusion d'événements, qui peut propager les événements de la portée parent à la portée enfant. Vous pouvez rechercher le contenu pertinent sur Baidu et il devrait être capable de le résoudre

    .

    répondre
    0
  • Annulerrépondre