這裏的一般想法是每個列在初始化時都會填充其查找數據。 「條目」數據是異步填充的列表,它是列可以具有的所有可能的值,預填充以避免當用戶實際嘗試在客戶端上填充該列時的長時間等待。使用返回承諾的函數調用屬性設置Javascript對象
我希望當「lookupDataAsyncReturnsPromise」解析完成後,「entries」屬性最終會填充數據列表,但是對於角度模板,entries屬性總是在屏幕上顯示爲{}。我可以在控制檯日誌中看到每個獨立的url調用。我懷疑自己正在遭受某種封閉陷阱或某些類似的痛苦。這是一個理智的事情嗎?
我知道這個javascript並不是特定於角度的,但是它被標記爲模板渲染{{column.entries}}返回{}(這是角度呈現承諾的方式嗎?)。
for(_index in response.data.data) {
var lookup = this.lookupDataAsyncReturnsPromise(url, response.data.data[_index].name);
var _column = {
"name" : response.data.data[_index].name,
"entries" : lookup
};
columns[_column.name] =_column;
}
查找總是返回一個承諾,你可以做Promise.all(),然後在。然後得到的數據作爲陣列( ) – marvel308
使用承諾的'.then'方法從中提取數據。有關更多信息,請參閱[AngularJS參考 - Promise API](https://docs.angularjs.org/api/ng/service/$q#the-promise-api)。 – georgeawg
謝謝大家,我很困惑,因爲http請求返回Promises和angular將它們分配給作用域對象時沒有問題 – David