使用MVC的AngularJS,http后不会刷新表

时间:2014-12-02 17:40:15

标签: javascript angularjs asp.net-mvc angularjs-ng-repeat

在$ 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中是否存在等价物?

1 个答案:

答案 0 :(得分:0)

我认为这更像是一个设计问题,因为你的控制器似乎试图像服务一样行事。 如果它们是服务,则可以将它们注入到控制器更容易管理它们返回的数据的位置。