我们说我有以下内容......
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"方法
这里发生了什么?我在哪里感到困惑。
答案 0 :(得分:3)
正如在Restangular文档中提到的那样:
因为Restangular返回promise,我们可以在promises上返回数据上调用方法,这样我们就可以在promise完成后运行一个函数。例如,在我们更新集合之后,我们可以刷新我们的范围集合:
messages.post(newMessage).then(function(newMsg) {
$scope.messages = messages.getList();
}, function error(reason) {
// An error has occurred
});