如何删除ArrayController(Ember)的内容数组中的元素

时间:2012-05-29 09:20:34

标签: ember.js

我有一个类似的模型:

TestModel = Em.Object.create({
    id:'',
    name:''
})

和一个对象ArrayController如:

testArrayController = Em.ArrayController.create({
    content: [],
    init: function() {
        //push some object TestModel
    }
});

我想删除一些依赖于内容数组中对象的id属性的对象。怎么做?

2 个答案:

答案 0 :(得分:19)

我会使用findPropertyremoveObject的组合,请参阅http://jsfiddle.net/pangratz666/rXN4E/

App.testArrayController = Em.ArrayController.create({
    content: [],

    removeItem: function(propName, value){
        var obj = this.findProperty(propName, value);
        this.removeObject(obj);
    }
});

App.testArrayController.removeItem('id', 42);

答案 1 :(得分:4)

我有一种情况,我有一个表格,每行旁边都有一个复选框。

我想删除单击按钮时选择的每一行。

每个复选框都绑定到项目控制器上的isSelected属性。

我使用removeObjects和filterProperty函数删除项目:

this.removeObjects(this.filterProperty('isSelected'));

以下是jsbin的示例。

这些是重点:

App.IndexController = Ember.ArrayController.extend({
  itemController: 'IndexItem',
  actions: {
    removeSelected: function() {
      this.removeObjects(this.filterProperty('isSelected'));
    }
  }
});

App.IndexItemController = Ember.ObjectController.extend({
  isSelected: true
});