3

ビューモデルには、プロパティがビューのコントロールにバインドされている「curRec」というオブジェクトがあります。たとえば、curRec.id、curRec.targetScore などです。

さらに、curRec には「actions」という配列型のプロパティがあります。Kendo UI で data-template を使用してアクションをレンダリングしています。

新しいレコードを curRec.actions にプッシュすると、内部で kendo がアクション「add」でイベントを 2 回起動するため、一度に 2 つの行が追加されます。一度に 1 つの行だけをプッシュしたため、配列には 1 つのレコードしか含まれません。

ここにいくつかのコードがあります:

addMore: function(e) {
    e.preventDefault();
    this.get("curRec.actions").push( new ActionModel({}) );
},
removeMore: function (e) {
    e.preventDefault();
    var action = e.data;
    var index_item_to_remove = this.get("curRec.actions").indexOf(action);
    this.get("curRec.actions").splice(index_item_to_remove, 1);
}

剣道コードを調べたところ、アクションが「追加」のイベントが 2 回呼び出されていることに気付きました。

ObservableArray がイベント/アクション「追加」を2回発生させる原因についてのヒントはありますか?

4

0 に答える 0