Breeze问题与complexType更改跟踪
我在应用程序中使用Angular和Breeze,并使用“HasChangesAnged”事件处理EntityManager中存储的实体状态。当我有属性为complexType且isScalar=false的实体时,我遇到了一个问题。 当我发出两次请求(不更改任何实体)并获得相同的实体时,就会出现问题。在第二个请求中,“hasChangesChanged”事件被激发,hasChanges=true。 在触发此事件时,我的实体的状态为“已修改”,但在加载数据后,该状态更改为“未更改” 我写了一个(Jasmine)单元测试。注释中是断言抛出错误的信息Breeze问题与complexType更改跟踪,breeze,Breeze,我在应用程序中使用Angular和Breeze,并使用“HasChangesAnged”事件处理EntityManager中存储的实体状态。当我有属性为complexType且isScalar=false的实体时,我遇到了一个问题。 当我发出两次请求(不更改任何实体)并获得相同的实体时,就会出现问题。在第二个请求中,“hasChangesChanged”事件被激发,hasChanges=true。 在触发此事件时,我的实体的状态为“已修改”,但在加载数据后,该状态更改为“未更改” 我写了一个(J
var entity,
hasChanges = false,
listeners = {
onChange: function (event) {
console.log('change', event.hasChanges);
}
};
spyOn(listeners, 'onChange');
$httpBackend.expectGET('json/SampleEntity?').respond(200, [
{
id: 1,
name: 'some name',
data: {},
$type: 'SampleEntity',
elements: [
{
etype: 'el1'
}
]
}
]);
manager.hasChangesChanged.subscribe(function (event) {
hasChanges = event.hasChanges;
});
var query = new breeze.EntityQuery('SampleEntity');
manager.executeQuery(query).then(function (data) {
entity = data.results[0];
});
$httpBackend.flush();
expect(hasChanges).toBe(false); // OK
expect(entity.entityAspect.entityState.isUnchanged()).toBe(true); // OK
$httpBackend.expectGET('json/SampleEntity?').respond(200, [
{
id: 1,
name: 'some name',
data: {},
$type: 'SampleEntity',
elements: [
{
etype: 'el1'
}
]
}
]);
manager.executeQuery(query).then(function (data) {
entity = data.results[0];
});
$httpBackend.flush();
expect(hasChanges).toBe(false); // ERROR
expect(entity.entityAspect.entityState.isUnchanged()).toBe(true); // OK
这是预期的行为吗?如果没有,我如何修复它?已经通过DocCode测试确认了错误。报告称为D#2672。收到地址后我会通知你的