使用$ q.resolve时,环回ng-sdk模型不会更新

时间:2016-07-07 13:18:01

标签: angularjs loopbackjs

我正在使用Loopback Angular SDK,当我更新模型时,如果我使用$ q.resolve,模型不会更新。

示例:

bpmService.createDocument(newDocument)
  .then(function (nd) {
     Oc.prototype$updateAttributes({originalOc.id, documentId: nd.document.id}).$promise
       .then(function(res){                 
            deferred.resolve(res);                 
        });
     });

奇怪的问题是,当我评论//deferred.resolve(res)行时;模型更新!!!

我错过了什么?

1 个答案:

答案 0 :(得分:0)

好吧,经过几次尝试后,我让我的修改工作。

首先,创建一个单独的函数来处理更新:

this.saveUpdatedOc = function(originalOc){
     return Oc.prototype$updateAttributes({id: originalOc.id, documentId: originalOc.newDocumentId}).$promise
});};

然后,从控制器按顺序调用它们

ocService.doTransition(transitionObject)
            .then(function (updatedDocument) {
                data.oc.newDocumentId = _.clone(data.oc.documentId);
                ocService.saveUpdatedOc(data.oc)
                    .then(function (response) {
                        //END OF FUNCTION
                    });
            });

现在正在努力!因此,似乎最好的方法是在服务中使用单独的函数来处理调用。如果有人对此有更好的解释,我将非常乐意阅读它。