[英]Run code after query in AngularJS
我創建了一個小項目,但是有一些問題。 我想在查詢后運行一些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
,因為查詢尚未返回。
這不是處理異步調用的方式。 原因是(簡而言之)JavaScript引擎先執行同步代碼,然后再執行異步代碼。
理想情況下,您應該等待它們完成並將所需的工作放入其回調函數中。 所以在這里你可以
.then
的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;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.