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

获取路径参数以解决

发布时间:2020-12-17 08:09:02 所属栏目:安全 来源:网络整理
导读:我因为无法使用Angular-UI UI-Router而死亡。我有一个状态定义如下: $stateProvider .state('member',{ url: '/member/:membersId',templateUrl: 'templates/member.html',resolve : { // From examples for testing simpleObj: function(){ return {value:
我因为无法使用Angular-UI UI-Router而死亡。我有一个状态定义如下:
$stateProvider
    .state('member',{
        url: '/member/:membersId',templateUrl: 'templates/member.html',resolve : {
            // From examples for testing
            simpleObj:  function(){
                return {value: 'simple!'};
            },memberDetails : function(FamilyService,$state) {

                return FamilyService.getMember($state.current.params.membersId);

            }
        },controller: 'MemberController'
    });

由于文档说$ stateParams不可用,所以我使用$ state.current.params。应该没事。相反,我会死空气。我无法访问membersId来挽救我的生命。

要测试我的服务,并确保不是问题,我硬编码在一个memberId,控制器获取memberDetails结果以及simpleObj结果。所以,服务和控制器和工作伟大。

硬编码的例子:

$stateProvider
    .state('member',$state) {

                return FamilyService.getMember('52d1ebb1de46c3f103000002');

            }
        },controller: 'MemberController'
    });

即使文档说您无法以决定的方式使用$ stateParams,反正我也尝试过。它也不工作。

返回FamilyService.getMember($ stateParams.membersId);

在世界上我如何获得成员ID参数,以传递给FamilyService以解决?

我没有多少头发要拉出来;所以有人救我。

我终于明白了。这很简单,在文档中。尽管阅读几次,我每次都忽略了。我需要注入$ stateParams来解决:
$stateProvider
    .state('member',resolve : {
            simpleObj:  function(){
                return {value: 'simple!'};
            },$stateParams) {
                return FamilyService.getMember($stateParams.membersId);
            }
        },controller: 'MemberController'
    });

我仍然不明白为什么文档说这是不可能的。

Two Important $stateParams Gotchas

The $stateParams object is only populated after the state is activated
and all dependencies are resolved. This means you won’t have access to
it in state resolve functions. Use $state.current.params instead.
$stateProvider.state(‘contacts.detail’,{ resolve: {
someResolve: function($state){
//* We cannot use $stateParams here,the service is not ready //
// Use $state.current.params instead *// return $state.current.params.contactId + “!” }; },// … })

(编辑:李大同)

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

    推荐文章
      热点阅读