如果我尝试通过构造函数在Breeze中扩展实体,例如:
breeze.EntityManager('ServiceUrl').metadataStore.registerEntityTypeCtor(
'customer',
function () {
this.orders = ko.observableArray([]);
}
);
尝试设置新属性时出现Knockout错误:
myCustomer.orders(newOrders);
错误是:
"Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters."
如果我在构造后的初始化程序中添加它,同样的工作。 我做错了吗?
答案 0 :(得分:0)
您缺少必需的参数 -
breeze.EntityManager('ServiceUrl').metadataStore.registerEntityTypeCtor(
'customer', null,
function () {
this.orders = ko.observableArray([]);
}
);
您的'customer'参数是识别实体类型所必需的。
第二个参数是构造函数(不是用于将属性扩展到实体上)
第三个是初始化实体
http://www.breezejs.com/sites/all/apidocs/classes/MetadataStore.html#method_registerEntityTypeCtor
您还需要在函数中定义实体 -
breeze.EntityManager('ServiceUrl').metadataStore.registerEntityTypeCtor(
'customer',
function (cust) {
cust.orders = ko.observableArray([]);
}
);