Javascript JayData不跟踪自定义对象上的更改

Javascript JayData不跟踪自定义对象上的更改,javascript,jaydata,Javascript,Jaydata,我定义了这种类型: $data.Entity.extend('MyApp.Models.Vehicle', { 'ID': { 'key': true, 'type': 'Edm.String', 'nullable': true, 'required': false }, 'Maker': { 'type': 'Edm.String', 'nullable': false, 'required': true }, 'Model': { 'type': 'Edm.Stri

我定义了这种类型:

$data.Entity.extend('MyApp.Models.Vehicle', {
    'ID': { 'key': true, 'type': 'Edm.String', 'nullable': true, 'required': false },
    'Maker': { 'type': 'Edm.String', 'nullable': false, 'required': true },
    'Model': { 'type': 'Edm.String', 'nullable': false, 'required': true },
    'Year': { 'type': 'Edm.Int32', 'nullable': false, 'required': true },
    'LicencePlate': { 'type': 'Edm.String', 'nullable': false, 'required': true },
    'Color': { 'type': 'MyApp.Models.Color', 'nullable': false, 'required': false }
});
对象颜色定义如下:

$data.Entity.extend('MyApp.Models.Color', {
    'Name': { 'type': 'Edm.String' },
    'Value': { 'type': 'Edm.Int32', 'nullable': false, 'required': true }
});
当原语值发生更改时,JayData会提交更改。 但是,如果颜色或任何其他(我有更多)自定义数据类型发生变化,JayData不会跟踪这些对象上的变化


我如何通知JayData他们已更改或启用跟踪(强制?)

JayData不跟踪复杂类型(如数组或自定义类型对象)的内部值。。 它只是跟踪对值的引用

在这种情况下,如果您想强制更新,您必须创建一个“深度副本”或将当前对象封装到另一个对象中,以便更改引用。例如,使用jQuery:

entity.field = jQuery.extend({}, field);
对象值实际上没有任何变化,但它被封装在jQuery的对象中,引用也发生了变化,因此JayData认为它的值发生了变化,并将更新后的值发送到服务器

这是一个解决办法,但正如我的朋友所说:“你真的关心你使用多少客户端的CPU吗?”:)