2

次のようなコンストラクターを介して Breeze のエンティティを拡張しようとすると、次のようになります。

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

新しいプロパティを設定しようとすると、ノックアウト エラーが発生します。

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([]);
  }
);

エンティティ タイプを識別するには、'customer' パラメータが必要です。

2 番目のパラメーターはコンストラクターです (プロパティをエンティティに拡張するためのものではありません)。

3 つ目は、エンティティの初期化です。

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 に答える