後在$ http.post()調用的成功()回調,我試圖更新HTML表:AngularJS與MVC,表不會刷新HTTP POST
.success(function (data) {
$scope.categories.push(data);
});
HTML:
<tbody>
<tr ng-repeat="category in categories">
<td>{{category.Id}}</td>
<td>{{category.CategoryTypeID}}</td>
<td>{{category.IsContentLibraryItem}}</td>
<td>{{category.Title}}</td>
<td>{{category.CreatedBy}}</td>
<td>{{category.CreatedDate}}</td>
</tr>
</tbody>
但是,結果是表格底部的空行,我相信這是因爲success()函數在post()函數完成之前執行。在成功()將新的(空)行推送到HTML表之前,新數據沒有完成寫入。
我需要一些延遲$scope.categories.push(data);
行的方法,直到post()真正完成。我似乎回想起用jQuery/Ajax有一個onComplete()事件或類似的東西,但在AngularJS中有沒有相同的東西?
如果您注入'$ window'並執行「$ window.alert(」獲取新數據「),則會發生什麼情況? – vidalsasoon 2014-12-02 18:19:05
它的行爲與沒有$ window時的行爲相同 - 彈出警報,但Firebug控制檯顯示一個inprog/$ digest錯誤 – JMax2012 2014-12-02 18:29:42
.success()僅在promise成功完成時被調用,在你的成功函數調用中嘗試console.log(data),它可能真的是空的,如果你提供了更多的代碼,我可以幫助更多 – UnbrandedTech 2014-12-02 20:26:35