Breezejs - 为什么不对非标量或复杂数据属性进行更改会触发更改事件?

时间:2014-03-24 03:45:01

标签: angularjs breeze

我在Breeze中使用非标量和复杂的数据属性。它们工作正常,除了在非标量属性中添加或删除项目时,或者在复杂属性上更改属性时,不会触发EntityChanged和PropertyChanged事件。

如果非标量或复杂属性发生变化,我如何收到通知?

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 }
                }
            })
        }
    }
});

1 个答案:

答案 0 :(得分:0)

对标量数据属性(即基元和complexType)实例的更改会引发父实体上的更改事件。对非标量数据属性的更改会在关联的集合上引发“arrayChanged”事件。 见:

http://www.breezejs.com/sites/all/apidocs/classes/%E2%86%88_complexArray_.html

http://www.breezejs.com/sites/all/apidocs/classes/%E2%86%88_primitiveArray_.html#event_arrayChanged