Maison > Questions et réponses > le corps du texte
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 ?
黄舟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"
}
}
})
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
.