2014-09-04 61 views
0

我正在處理承諾的小問題。我正在嘗試使用網格上的簡單信息製作可展開的表格,然後單擊並展開它,然後進行更詳細的說明。它工作正常。我的問題是,當你展開網格片刻(如0.5-1s)時,你可以看到舊的附件列表(來自之前檢查過的新聞),然後重新解析延期的諾言。角數據綁定和承諾處理

這裏是我的代碼至今:控制器和服務的一部分(restangular):http://pastebin.com/ViBpXuhr

HTML代碼:http://pastebin.com/K9ZPWScc

由於目前的數據模型,這是我無法去改變,我認爲我必須做到這一點方式,或者至少我沒有任何其他的想法。所以,當用戶看到網格並點擊行時,他想檢查我運行getAttList函數,並將newsId作爲參數,並通過服務列表返回,但我需要但是有一段時間,表已經擴展,但用戶完全看不到數據(因爲他沒有擴展任何更早)或來自以前檢查過的新聞的數據。

通常我在處理$ q的承諾,但在這種情況下,我不知道我該怎麼做。

回答

1

爲避免顯示以前檢查過的新聞數據,每當$scope.newsIdExpanded值發生更改時,請執行$scope.attachments = null;。您可以輕鬆地做到這一點的$scope.selectTableRow功能,因爲你有以前的($scope.newsIdExpanded)和新(newsId)選定的ID,只是比較兩個,看看它們是不同的:

而內容
if ($scope.newsIdExpanded != newsId) { 
    $scope.attachments = null; 
} 

不顯示任何正在加載是正常的,因爲請求是異步的。你可以顯示,例如一個加載圖標,而attachments == null

+0

那麼,那個很簡單。甚至沒有想過這個,但是,如果這是常見的技術,那麼我會去用它。謝謝 – sniegoman 2014-09-04 17:54:08