gpt4 book ai didi

javascript - $stateParams 未在 $scope.$on 方法中传递参数

转载 作者:行者123 更新时间:2023-12-03 06:18:40 25 4
gpt4 key购买 nike

我正在尝试将路由适应现有应用程序。它需要太多的更改才能以完美的方式适应路由器,因此我尝试使用 ui-router 的 $broadcastonEnter 来管理它。

我正在使用 $state.go 更改 URL 并传递参数。我能够在 onEnter 方法中获得正确的 $stateParams ,但是当我从那里广播事件时,它正在执行在 Controller 内部注册的事件,但在 Controller 内部我是未更新 $stateParams 对象。

$stateProvider.state("state1", {
url: "/state1/{docId}",
template: "<p>State 1</p>",

}).state("state2", {
url: "/state2/{docId}",
template: "<p >State 2</p>",
onEnter : function($rootScope,$stateParams) {
console.log("Before braodcast ", JSON.stringify($stateParams));
$rootScope.$broadcast("getDataForState2");
}
});

JSFiddle显示我的问题。单击状态 2 并查看控制台。

最佳答案

在 .$on() 中使用超时

$scope.$on("getDataForState2",function() {
$timeout(function(){
console.log(JSON.stringify($stateParams));
});
})

关于javascript - $stateParams 未在 $scope.$on 方法中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38967405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com