在 run 函数中访问 $stateParams 的 AngularJS

17 浏览
0 Comments

在 run 函数中访问 $stateParams 的 AngularJS

我想在我的run函数中能够访问URL参数,并根据这些参数执行相应的操作。然而,我很惊讶地发现在我的run函数中,ui.router的$stateParams对象是空的。\n是否可以在run函数中访问从$stateParams获得的参数?还是它们只能在config函数中访问?为什么在run函数中无法访问它们?\nPlnkr: http://plnkr.co/edit/1YXKRmR48LyxbGXWq66Y?p=preview\n感谢任何帮助。

0
0 Comments

AngularJS accessing $stateParams in run function

在AngularJS中,我们可以使用$stateChangeStart事件来访问参数。通过在$rootScope上注册$stateChangeStart事件的回调函数,我们可以在该回调函数中访问到toParams参数,如下所示:

$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
    //你的代码在这里
    console.log(toParams);
});

上述代码中,我们可以在toParams中访问到路由的参数。这个方法可以用来添加一些自定义逻辑,比如进行身份验证的重定向。

通过上述方法,我们可以成功访问到参数。但是有人会好奇为什么在run函数中不能直接访问$stateParams。

这篇帖子对我理解run函数有很大的帮助:stackoverflow.com/questions/20663076/…

帖子中的解答对我非常有帮助,非常感谢。

0