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

sec*_*tlm 11 ember.js

我有一个模型:

TestModel = Em.Object.create({
    id:'',
    name:''
})
Run Code Online (Sandbox Code Playgroud)

和一个对象ArrayController,如:

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

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

pan*_*atz 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);
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考:如果您使用Ember Data获取控制器的数据,这将无效 - 数组是不可变的. (4认同)