0

いくつかの繰り返しロジックを持ついくつかのコレクション プロパティを持つビュー モデルがあります。新しい空のオブジェクトを追加し、オブジェクトを削除し、すべてのコレクションに少なくとも 1 つのオブジェクトがあることを確認する必要があります。それが唯一のオブジェクトである場合は、[削除] ボタンを無効にする必要があります。

これらの一般的な関数を抽出するために、 k を拡張しましたendo.data.ObservableArray

function addEmpty() {
  this.push({});
}

function hasMoreThanOne {
  return this.length > 1;
}

var CoolObservableArray = kendo.data.ObservableArray.extend({
  init: function(data) {
    kendo.data.ObservableArray.fn.init.call(this, data);

    this.addEmpty = addEmpty.bind(this);
    this.hasMoreThanOne = hasMoreThanOne.bind(this);
  }
});

問題はhasMoreThanOne機能にあります。単一の要素で配列を作成すると、「削除」ボタンが無効になりますが、新しい要素を追加すると有効になりません。

UI を更新するには kendo のget関数を呼び出す必要がありますが、プロパティ名を参照するパラメーターが必要であり、これは のインスタンスごとに異なるため、 、 などのCoolObservableArrayコレクションごとに繰り返し関数を記述する必要があります。どうすれば回避できますか?それ?deleteXXXEnableddeleteYYYEnabled

問題の再現に関するフィドルは次のとおりです。http://dojo.telerik.com/AFOMa/2

4

1 に答える 1