Angularjs Breezejs-为什么不';对非标量或复杂数据属性的更改是否会触发更改事件?
我在Breeze中使用非标量和复杂的数据属性。它们工作正常,只是在非标量属性中添加或删除项时,或者在复杂属性上更改属性时,不会触发EntityChanged和PropertyChanged事件 当非标量或复杂属性发生更改时,如何获得通知Angularjs Breezejs-为什么不';对非标量或复杂数据属性的更改是否会触发更改事件?,angularjs,breeze,Angularjs,Breeze,我在Breeze中使用非标量和复杂的数据属性。它们工作正常,只是在非标量属性中添加或删除项时,或者在复杂属性上更改属性时,不会触发EntityChanged和PropertyChanged事件 当非标量或复杂属性发生更改时,如何获得通知 manager.metadataStore.addEntityType({ shortName: 'Thing', namespace: namespace, dataProperties: { id: {
manager.metadataStore.addEntityType({
shortName: 'Thing',
namespace: namespace,
dataProperties: {
id: {
dataType: breeze.DataType.Guid,
isPartOfKey: true
},
strings: {
dataType: breeze.DataType.String,
isScalar: false
},
object: {
dataType: new breeze.ComplexType({
shortName: 'Object',
namespace: namespace,
dataProperties: {
a: { dataType: breeze.DataType.String },
b: { dataType: breeze.DataType.String }
}
})
}
}
});
对标量数据属性实例(即原语和complexType)的更改会在父实体上引发更改事件。对非标度数据属性的更改会在关联集合上引发“arrayChanged”事件。 见: 及
如果我错了,请纠正我的错误,但只有当我更改整个实体时,我才会得到事件,即thing.object={};如果我更改了复杂类型的属性,则不会有事件:thing.object.a='hello!'没有引起任何事件。对于非标量数据类型,我知道我可以侦听arrayChanged事件,但这是否违背了其他地方的建议,即使用entityChanged事件来避免内存泄漏?()否,对于标量复杂类型的属性的更改,您应该看到在父级上激发的propertyChanged事件。看,我不能让它工作。请看这个plunker:-当创建标量复杂类型时,我只得到一个事件,然后什么都没有。我做错了什么?如果更改文本框,您会收到一条消息,说明属性“obj”已更改,然后什么也没有更改。