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 回答