首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

AngularJS 非同步資料綁定陷阱:Promise 解析後 $scope 陣列為空的原因與修正

     編輯:程式設計綜合問答

程式碼中 console.log($scope.goods) 緊接在 promise.then 註冊後執行,但 Promise 尚未解析,故輸出空陣列。正確做法:

promise.then(function(data) {
for(var i=0;i $scope.goods.push(data[i]);
}
// 在這裡才能取得資料
console.log($scope.goods);
});

或使用 $scope.$apply() 觸發檢測(AngularJS 1.x 通常自動處理)。關鍵理解:then 內的回呼是非同步執行,外層同步程式碼不會等待。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved