Restangular:为什么post不更新集合?

时间:2014-09-23 11:39:20

标签: angularjs restangular

我们说我有以下内容......

myService = Restangular.all('things');
myService.getList().then(
  // success
  function(things) {
      $scope.things = things;
  },
  // failure
  function(things) {
    // do whatever, stuff failed
  }
)

现在我有$scope.things这是来自api的things的集合,一切都很好。

我想发布一个新的thing,并返回承诺,以便我可以在其他地方处理通过/失败

return $scope.things.post(newThing) // A promise...

但是,通过这种方式做事,DOESN会自动将新thing添加到$scope.things集合中。为什么不?我已经看到了与restangular docs的enhanced promises部分相关联的问题,并提到了" push"方法,但这对我没有帮助,因为$scope.things没有" push"方法

这里发生了什么?我在哪里感到困惑。

1 个答案:

答案 0 :(得分:3)

正如在Restangular文档中提到的那样:

因为Restangular返回promise,我们可以在promises上返回数据上调用方法,这样我们就可以在promise完成后运行一个函数。例如,在我们更新集合之后,我们可以刷新我们的范围集合:

messages.post(newMessage).then(function(newMsg) {
  $scope.messages = messages.getList();
}, function error(reason) {
  // An error has occurred
});