在angular.extend()中向变量返回一个承诺的值
Return a promised value to variable in angular.extend()
在下面的示例中,如何将 myVar 设置为异步服务方法返回的值
angular.extend(this, {
myVar: (function() {
getVal();
})()
});
function getVal() {
var d = $q.defer();
MyFactory.Get()
.then(function (resp) {
d.resolve(resp.data);
});
return d.promise; // myVar should equal resp.data
};
我想我表现出我对承诺/延期缺乏理解,所以建议会很棒。
由于 myVar 是一个变量,您可以从控制器中的任何位置设置它。在初始化中,您可以将其分配给回退值或将其设置为未定义。并在异步调用成功后设置它。
angular.extend(vm, {
myVar: 'fallback'
});
或:
angular.extend(vm, {
});
然后:在控制器中:
getVar();
function getVar() {
getVal().then(function(data){
vm.myVar = data;
});
}
function getVal() {
var d = $q.defer();
MyFactory.Get()
.then(function (resp) {
d.resolve(resp.data);
});
return d.promise; // myVar should equal resp.data
};
或更有效:
getVal();
function getVal() {
MyFactory.Get()
.then(function (resp) {
vm.myVar = resp.data;
});
};
将this
更改为vm
,以消除与关键字可能引发this
冲突。
相关文章:
- 如何从jquery函数返回变量
- 返回变量作为构造函数
- 从导出的模块返回变量,并在另一个文件(NodeJS)中使用它
- 在JavaScript和knockout.js中,为什么可以'我不返回一个变量吗?为什么我必须返回变量,就好像它
- 如何从匿名函数返回变量
- 在呈现函数中返回变量
- 在设置超时后返回变量
- AngularJS在大括号中返回变量名称,而不是值
- JQuery:创建扩展返回变量未定义
- 我应该从量角器中元素的 getText() 承诺中分配一个变量或返回变量
- AJAX 在 cicle 完成后返回变量
- 如何返回变量并同时重置/删除它
- 如何从 javascript 中的回调函数返回变量
- 返回变量而不声明它的函数
- 正在从数组中返回变量名
- 从reader.onload事件返回变量
- 延迟返回变量,直到数据从Firebase同步
- 函数不't返回变量
- 如何将函数中的返回变量插入HTML表单
- Javascript 方法不返回变量