加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – `ui-router` $stateParams vs. $state.params

发布时间:2020-12-17 09:12:16 所属栏目:安全 来源:网络整理
导读:使用ui-router,可以将$ state或$ stateParams注入到控制器中,以访问URL中的参数。然而,通过$ stateParams访问参数只暴露属于由访问它的控制器管理的状态的参数及其父状态,而$ state.params具有所有参数,包括任何子状态下的参数。 给定以下代码,如果我
使用ui-router,可以将$ state或$ stateParams注入到控制器中,以访问URL中的参数。然而,通过$ stateParams访问参数只暴露属于由访问它的控制器管理的状态的参数及其父状态,而$ state.params具有所有参数,包括任何子状态下的参数。

给定以下代码,如果我们直接加载URL http:// path / 1 / paramA / paramB,这是它在控制器加载时的方式:

$stateProvider.state('a',{
     url: 'path/:id/:anotherParam/',controller: 'ACtrl',});

$stateProvider.state('a.b',{
     url: '/:yetAnotherParam',controller: 'ABCtrl',});

module.controller('ACtrl',function($stateParams,$state) {
   $state.params; // has id,anotherParam,and yetAnotherParam
   $stateParams;  // has id and anotherParam
}

module.controller('ABCtrl',and yetAnotherParam
   $stateParams;  // has id,and yetAnotherParam
}

问题是,为什么会有区别?有没有最佳实践指南围绕什么时候和为什么你应该使用,或避免使用它们中的任何一个?

文档在此重申您的发现: https://github.com/angular-ui/ui-router/wiki/URL-Routing#stateparams-service

如果我的内存服务,$ stateParams被引入晚于原来的$ state.params,似乎是一个简单的帮助注入器,以避免连续写$ state.params。

我怀疑有什么最佳实践指南,但情境赢得了我。如果你只是想访问接收到的url参数,然后使用$ stateParams。如果你想知道关于状态本身更复杂的事情,使用$ state。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读