Heim > Fragen und Antworten > Hauptteil
Routing-Einstellungen (es besteht eine Eltern-Kind-Beziehung zwischen den beiden Staaten):
.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 im Controller des Mutterstaates:
.controller("MyProfileCtrl", function ($scope, $state) {
$scope.goToMobileInput = function () {
$state.go("tab.my-profile-mobileinput", {"mobile": "123456"})
};
})
3. Code im Controller des untergeordneten Staates:
.controller("MobileInputCtrl", function ($scope, $stateParams) {
alert($stateParams.mobile); // undefined
})
Kann zum Unterstatus springen, aber keine Parameter im Controller des Unterstatus empfangen (das beim Zugriff auf die Parameter erhaltene Ergebnis ist undefiniert, nicht „123456“). Nach der Lektüre der Informationen im Internet sollte dieses Schreiben korrekt sein. Hängt es mit der Vater-Sohn-Beziehung zwischen Staat zusammen?
黄舟2017-05-27 17:46:33
你的router定义的有问题,params需要和url, views在同一级,views正如字面意思那样,是指定ui的,你在其中指定了params就有问题了,需要改成如下这样:
.state("tab.my-profile-mobileinput", {
url: "/my/profile/mobileinput",
params: {"mobile": null},
views: {
"tab-my": {
templateUrl: "templates/util-mobile-input.html",
controller: "MobileInputCtrl"
}
}
})