我正在努力使用从我的 Controller 中的“获取”中获得的值。
这是我 Controller 中的代码
vm.user;
function onInit(){
loadUser(vm.queryParams.id[0]);
console.log(vm.user);
}
function loadUser(UserId) {
var defer = $q.defer();
User.get({ id: userId }).$promise.then(function (user) {
vm.user = user;
defer.resolve();
});
return defer.promise;
};
当我在 onInit()
中打印 vm.user
时,它是未定义的。当我查看调用 vm.user 的 View 时,它只显示用户的正确值。所以它在 Controller 中的 loadUser()
之后是未知的,但它在我看来是。
我想首先“获取”用户,然后将其用于 onInit()
中的进一步逻辑。如何正确检索用户以便我可以进一步使用它并在 onInit()
中调用它的值?
最佳答案
您必须等到 loadUser()
执行完成才能获取用户的值。您可以使用这样返回的 promise 并对其进行任何计算。
vm.user;
function onInit(){
var promise=loadUser(vm.queryParams.id[0]);
promise.then(function(response){
console.log(response);
});
}
function loadUser(UserId) {
var defer = $q.defer();
User.get({ id: userId }).$promise.then(function (user) {
vm.user = user;
defer.resolve(vm.user);
});
return defer.promise;
};
关于javascript - 在 Controller 中使用来自 ngResource 的 get 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44804415/