2

をクリアする方法を探していますが、次ArrayControllerの場合にエラーが発生しますsortProperties

App.SwatchesController = Ember.ArrayController.extend({
  clear: function () {
    this.clear(); // Error: Using replace on an arranged ArrayProxy is not allowed. 
  },
  sortProperties: ['occurences']
});

を削除するsortPropertiesと、問題なく動作します。もちろん、次のようにしてコントローラーをクリアできます。

this.set('model', []);

clear()でも、できればにこだわりたい。

4

1 に答える 1

2

justthis.clear()を使用するとarrangedContent変更が行われますが、これは許可されていません。arrangedContent真実の情報源ではなく、単なるmodelプロパティであるために発生すると思います。arrangedContentフィルタ、順序、並べ替えなど、モデル プロパティに基づいて再編成されたデータを意図しています。そのmodelため、配置されたデータではなく、常にソース ( ) を変更する必要があります。

this.get('model').clear();したがって、の代わりに使用する必要がありますthis.clear();

更新されたコードは次のようになります。

App.SwatchesController = Ember.ArrayController.extend({
  clear: function () {
    this.get('model').clear();
  },
  sortProperties: ['occurences']
});
于 2013-10-10T16:33:50.947 に答える