AngularJS - $routeProvider 的 resolve 属性 导致相应控制器中的未定义对象
AngularJS - $routeProvider's resolve property results in undefined object in corresponding controller
我将下面显示的解析 属性 分配给“/users”路由。 $rootScope.resource 里面有几个 HATEOAS 风格的链接; "users" 作为 rels 之一...最终,我试图跟随 ($get) "users" linkrel 并将输出(HATEOAS rels 的另一个级别)分配给 "usersResource" 属性,然后我将通过我的控制器访问它:
.when("/users", {
templateUrl: "/static/views/users.html",
controller: "usersController",
controllerAs: "usersController",
resolve: {
usersResource: function ($rootScope) {
if ($rootScope.resource) {
$rootScope.resource.$request().$get("users",{
linksAttribute: "_links",
embeddedAttribute: "_embedded"
})
.then(function successCallback(data) {
return data;
}, function errorCallback(data) {
return {}
})
}
else
return {};
}
}
})
现在,当我试图从我的控制器访问 "usersResource" 时,我得到了未定义的信息。控制器当前没有逻辑。我只是暂时尝试将 usersResource 内容输出到控制台...
(function () {
angular
.module("HateoasApp")
.controller("usersController", usersController);
usersController.$inject = ["usersResource"];
function usersController(usersResource) {
var vm = this;
// properties
vm.usersResource = usersResource;
// objects
// functions
console.log(usersResource);
}
})();
任何 comments/suggestions 将不胜感激。谢谢!
您没有从解析函数返回任何内容:
return $rootScope.resource.$request()...
^^^^^^
我将下面显示的解析 属性 分配给“/users”路由。 $rootScope.resource 里面有几个 HATEOAS 风格的链接; "users" 作为 rels 之一...最终,我试图跟随 ($get) "users" linkrel 并将输出(HATEOAS rels 的另一个级别)分配给 "usersResource" 属性,然后我将通过我的控制器访问它:
.when("/users", {
templateUrl: "/static/views/users.html",
controller: "usersController",
controllerAs: "usersController",
resolve: {
usersResource: function ($rootScope) {
if ($rootScope.resource) {
$rootScope.resource.$request().$get("users",{
linksAttribute: "_links",
embeddedAttribute: "_embedded"
})
.then(function successCallback(data) {
return data;
}, function errorCallback(data) {
return {}
})
}
else
return {};
}
}
})
现在,当我试图从我的控制器访问 "usersResource" 时,我得到了未定义的信息。控制器当前没有逻辑。我只是暂时尝试将 usersResource 内容输出到控制台...
(function () {
angular
.module("HateoasApp")
.controller("usersController", usersController);
usersController.$inject = ["usersResource"];
function usersController(usersResource) {
var vm = this;
// properties
vm.usersResource = usersResource;
// objects
// functions
console.log(usersResource);
}
})();
任何 comments/suggestions 将不胜感激。谢谢!
您没有从解析函数返回任何内容:
return $rootScope.resource.$request()...
^^^^^^