成功的saveChanges()调用时抛出的错误[breezeJS]

时间:2014-08-11 00:05:52

标签: angularjs runtime-error odata breeze

我使用breeze.angular与olingo OData提供者进行通信。更改实体的属性后,我有一个挂起的更改。 <{1}}被调用时,相应的对象可见。

实际上调用manager.getChanges()会导致通过olingo成功更新数据库。但同时会抛出以下错误:

manager.saveChanges

显然breeze无法更改entityState,因为对象保持挂起更改。

关于http通信,我观察了两个服务器请求:

TypeError: Cannot read property 'entityAspect' of undefined
    at http://localhost:63342/js/breeze.debug.js:14471:38
    at http://localhost:63342js/breeze.debug.js:258:26
    at Array.map (native)
    at __map (http://localhost:63342js/breeze.debug.js:257:15)
    at proto.visitAndMerge (http://localhost:63342/js/breeze.debug.js:14470:16)
    at http://localhost:63342/js/breeze.debug.js:13102:48
    at __using (http://localhost:63342/js/breeze.debug.js:423:16)
    at Object.processSavedEntities (http://localhost:63342/js/breeze.debug.js:13091:13)
    at saveSuccess (http://localhost:63342/js/breeze.debug.js:13070:67)
    at wrappedCallback (http://localhost:63342/js/angular.js:11319:81) 

Request Method:OPTIONS
Status Code:200 OK

为什么微风无法处理这个成功的更新?


更新: 添加了saveChanges代码。 (我从回调中删除了自己的日志记录方法。)

Request Method:POST
Status Code:202 Accepted

manager.saveChanges() .then(saveSucceeded) .catch(saveFailed) .finally(saveFinal); function saveSucceeded(saveResult) { console.log(saveResult); } function saveFinal(saveFinal){ console.log(saveFinal); } function saveFailed(error){ console.log(error); } 收到上面的TypeError,而saveFailed未定义。

结果对象:

saveFinal

1 个答案:

答案 0 :(得分:1)

Breeze使用datajs将数据转换为OData格式或从OData格式转换数据。我怀疑datajs在处理Olingo的响应方面遇到了麻烦。

我认为Olingo源自SAP,而this SO post描述了该服务器的问题。