簡體   English   中英

查詢后在AngularJS中運行代碼

[英]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.topundefined ,因為查詢尚未返回。

這不是處理異步調用的方式。 原因是(簡而言之)JavaScript引擎先執行同步代碼,然后再執行異步代碼。

理想情況下,您應該等待它們完成並將所需的工作放入其回調函數中。 所以在這里你可以

  1. 打電話給你的代碼中.thenBook.get()函數
  2. 或鏈接承諾並調用所需的代碼。

// 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM