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?
你的router定义的有问题,params需要和url, views在同一级,views正如字面意思那样,是指定ui的,你在其中指定了params就有问题了,需要改成如下这样:
$broadcast,我记得这种应该采用事件广播,可以将事件从父级作用域传播至子级作用域,你可以百度一下相关内容,应该能够解决