我创建了一个小项目,但是我遇到了一些问题。我想在查询后运行一些JavaScript代码。我的代码是这样的:
Book.get({
id: $stateParams.id,
min: 0,
max: 3
}).$promise.then(function(data){
vm.list=data;
}).finally(function () {
});
vm.top=vm.list.name;
vm.top
是undefined
,因为查询尚未返回。
答案 0 :(得分:2)
这不是你应该如何处理异步调用。原因是(简而言之)JavaScript引擎首先执行同步代码,然后执行异步代码。
理想情况下,您应该等到他们完成并将您想要的工作放入他们的回调函数中。所以在这里你可以
.then
function Book.get()
内调用您的代码
// 1. First way
var getBook = Book.get({id:$stateParams.id,min:0,max:3}).$promise.then(function(data){
vm.list=data;
// Put your code here
}).finally(function () {
});
// 2. Second way
getBook.then(function(){
vm.top= vm.list && vm.list.name;
});