2

如果我尝试通过构造函数扩展 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."

如果我将它添加到构造后初始化程序中,同样的工作。难道我做错了什么?

4

1 回答 1

0

您缺少必需的参数 -

breeze.EntityManager('ServiceUrl').metadataStore.registerEntityTypeCtor(
  'customer', null,
  function () {
    this.orders = ko.observableArray([]);
  }
);

您的“客户”参数是标识实体类型所必需的。

第二个参数是构造函数(不用于将属性扩展到实体上)

第三个是用于初始化实体

http://www.breezejs.com/sites/all/apidocs/classes/MetadataStore.html#method_registerEntityTypeCtor

您还需要在函数中定义实体 -

breeze.EntityManager('ServiceUrl').metadataStore.registerEntityTypeCtor(
  'customer',
  function (cust) {
    cust.orders = ko.observableArray([]);
  }
);
于 2013-08-08T13:28:05.460 回答