如何只获取集合中所有模型的属性

时间:2012-06-12 08:03:14

标签: javascript backbone.js

我有一个如下所示的集合

window.courses = new Courses();

和我的代码中的一些地方我试图访问集合的属性。我使用pluck只获取了一个属性,即courseName

例如:

var courseName = window.courses.pluck('Name');

我可以在我的收藏中获得所有课程名称(单一属性),但有一种方法可以从课程集合中获取每个项目的名称和ID,例如

var courseList = window.courses.pluck('Id','Name');

使用以下代码

var courseList = window.courses;

我得到了我不需要的所有额外细节,因此有人可以建议如何获取集合中所有模型的必需属性

提前致谢

1 个答案:

答案 0 :(得分:2)

标准Backbone pluck function仅支持读取一个属性值。

你可以自己编写,例如:

Backbone.Collection.prototype.pluckMany = function (attrs) {
    return _.map(this.models, function (model) {
        return _.pick(model.attributes, attrs);
    });
}

var courseList = window.courses.pluckMany(['Id', 'Name']);

注意:未经测试的代码!