angular 中的$routeParams和$route.current.params的区别是什么?

发布于 2022-08-29 18:05:14 字数 474 浏览 23 评论 0

路由:

.when('/view/:recipeId',{
        controller:'ViewRecipe',
        templateUrl:'views/viewRecipe.html',
        resolve:{
            recipe:['loadRecipe',function(loadRecipe){
                 return loadRecipe()
            }]
        }
    })

当路由跳到 http://10.22.7.40:9000/#/view/3 的时候
使用$route.current.params为{recipeId:3},但是$routeParams却是{}
想知道原因是什么? 谢谢~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

漆黑的白昼 2022-09-05 18:05:14

我不知道你是在哪里查看 $routeParams 的,我猜是在 resolve: 那里吧?这就是原因。请仔细阅读 $routeParams 的文档,不长,10 分钟就读完了。帮你总结一句话:

Note that the $routeParams are only updated after a route change completes successfully. This means that you cannot rely on $routeParams being correct in route resolve functions.

然后你可以再看看文档里的这个例子,注意这个例子里模拟了异步的延迟,于是当你切换 routes 的时候,仔细观察 $route.current.params$routeParams 的变化顺序;另外看清楚这个例子是在哪里去获取 $routeParams 的。

要学会看文档呀~

╭ゆ眷念 2022-09-05 18:05:14

建议使用angular-ui-router插件,获取参数直接通过$stateParams即可

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文