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

在angularjs ui-router状态下解析多个对象?

发布时间:2020-12-17 07:26:07 所属栏目:安全 来源:网络整理
导读:这是我的代码: .state("dashboard.userRoles",{ url: "/user/:id/roles",controller: "userRolesController as vm",templateUrl: "app/auth/users/user-roles.html",resolve: { user: function (userResource,$stateParams) { return userResource.get({ id
这是我的代码:
.state("dashboard.userRoles",{
    url: "/user/:id/roles",controller: "userRolesController as vm",templateUrl: "app/auth/users/user-roles.html",resolve: {
        user: function (userResource,$stateParams) {
            return userResource.get({ id: $stateParams.id }).then(function (res) { return res.data; });
        },roles: function($http,$stateParams) {
            var url = appSettings.authApiBaseUrl + "api/accounts/users/" + $stateParams.id + "/roles";
            return $http.get(url).then(function(res) { return res.data; });
        },loadMyFiles: function($ocLazyLoad) {
            return $ocLazyLoad.load({
                name: "app",files: [
                    "app/auth/users/userRolesController.js"
                ]
            });
        }
    }
})

如果我导航到dashboard.userRole并查看fiddler,我会看到获取用户资源的请求,但不是角色.如果我注释掉用户:部分,我会看到在fiddler中获取角色的请求.为什么我不能解决这两个问题?我应该将id发送到控制器并获取所有内容吗?

我试图避免在控制器中收集数据,因为它应该只是视图模型的东西和ui之间的缝合.也许那没关系?提前致谢.

编辑1:
好的,我可以将代码更改为此并查看fiddler中显示的两个请求,并且它们都返回格式正确的json数据:

.state("dashboard.userRoles",$stateParams) {
            return userResource.get({ id: $stateParams.id }).$promise;
        },$stateParams) {
            var url = appSettings.authApiBaseUrl + "api/accounts/users/" + $stateParams.id + "/roles";
            return $http.get(url).then(function(res) { return res.data; }).$promise;
        },files: [
                    "app/auth/users/userRolesController.js"
                ]
            });
        }
    }
})

但是,注入控制器的角色始终是“未定义的”.用户已正确填充. fiddler中的响应显示了回来的角色,所以我不确定为什么它们是未定义的.这是控制器代码.

"use strict";

angular
    .module("app")
    .controller("userRolesController",[
        "user","roles",function (user,roles) {

            console.log("app.userRolesController.function()");

            var vm = this;
            vm.user = user;
            vm.roles = roles;
        }
    ]);
这 angular-ui-router issue/question很有帮助.无论如何,这有效!
.state("dashboard.userRoles",$stateParams) {
            return userResource.get({ id: $stateParams.id });
        },$stateParams) {
            var url = appSettings.authApiBaseUrl + "api/accounts/users/" + $stateParams.id + "/roles";
            return $http.get(url);
        },files: [
                    "app/auth/users/userRolesController.js"
                ]
            });
        }
    }
})

这是控制器.关于角色的.data很重要!

angular
    .module("app")
    .controller("userRolesController",roles) {

            var vm = this;
            vm.user = user;
            vm.roles = roles.data;
        }
    ]);

(编辑:李大同)

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

    推荐文章
      热点阅读