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

angularjs – 在ui-router解析中使用$scope

发布时间:2020-12-17 09:16:03 所属栏目:安全 来源:网络整理
导读:我正在使用ui-router解析,以便从服务中获取一些数据. 事情是,我需要从父$scope获取一个值,以便调用服务,如下所示. resolve: { contactService: 'contactService',contacts: function ($scope,contactService) { return contactService.getContacts($scope.pa
我正在使用ui-router解析,以便从服务中获取一些数据.

事情是,我需要从父$scope获取一个值,以便调用服务,如下所示.

resolve: {
              contactService: 'contactService',contacts: function ($scope,contactService) {
                  return contactService.getContacts($scope.parentCtrl.parentObjectId);
              }
          }

我不断得到错误:[$rootScope:infdig]达到$$digest()迭代.中止!

还尝试了一些绝望的尝试,例如向resolve对象添加范围,如下所示,没有成功.

scope: $scope

有任何想法吗?

这是不可能的,范围还没有被初始化,所以你不能在resolve对象中使用它.初始化后,您可以访问控制器中的范围.整个解决方案是在控制器初始化之前运行,以便您可以注入并直接访问范围中已解决的项目.

如果您需要将变量传递给下一个状态,则可以使用可用于解析的$stateParams对象来执行此操作.更改状态时可以添加数据,例如:

在您的模板中,如果您的范围中有一个objectId:

<a ui-sref="statename({'id': objectId})">Change states</a>

或在您的控制器:

$scope.go('statename',{'id': $scope.objectId});

然后,您可以通过使用$stateParams在您的解决中检索:

resolve: {
    contactService: 'contactService',contacts: function ($stateParams,contactService) {
        return contactService.getContacts($stateParams.id);
    }
}

(编辑:李大同)

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

    推荐文章
      热点阅读