在$ http.post()调用的success()回调中,我正在尝试更新HTML表:
.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()函数完成之前执行。在success()将新(空)行推送到HTML表之前,新数据未完成写入。
我需要一些延迟$scope.categories.push(data);
行的方法,直到post()真正完成。我似乎记得在jQuery / Ajax中有一个onComplete()事件或类似的东西,但在AngularJS中是否存在等价物?
答案 0 :(得分:0)
我认为这更像是一个设计问题,因为你的控制器似乎试图像服务一样行事。 如果它们是服务,则可以将它们注入到控制器更容易管理它们返回的数据的位置。