我使用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
答案 0 :(得分:1)
Breeze使用datajs将数据转换为OData格式或从OData格式转换数据。我怀疑datajs在处理Olingo的响应方面遇到了麻烦。
我认为Olingo源自SAP,而this SO post描述了该服务器的问题。