Backbone.js集合中模型的名称列表

时间:2013-01-05 18:30:33

标签: backbone.js

我正在努力学习一些backbone.js而且我会陷入一些我认为应该相当简单的事情。如何获取集合中所有模型名称的列表?

我甚至从骨干教程中复制+粘贴:

var Song = Backbone.Model.extend({
    defaults: {
        name: "Not specified",
        artist: "Not specified"
    },
    initialize: function(){
        console.log("Music is the answer");
    }
});

var Album = Backbone.Collection.extend({
    model: Song
});

var song1 = new Song({ name: "How Bizarre", artist: "OMC" });
var song2 = new Song({ name: "Sexual Healing", artist: "Marvin Gaye" });
var song3 = new Song({ name: "Talk It Over In Bed", artist: "OMC" });

var myAlbum = new Album([ song1, song2, song3]);
console.log( myAlbum.models ); // [song1, song2, song3]

问题是 - 这不会在控制台中给我模型名称:    console.log(myAlbum.models); // [song1,song2,song3]
相反,我得到[孩子,孩子,孩子,孩子] - 我如何得到实际的名字?

1 个答案:

答案 0 :(得分:2)

您需要pluck name属性。

myAlbum.pluck('name');

无法获得这样的数组:

['song1', 'song2', 'song3']

因为程序逻辑中没有变量名称。

更新

当教程写下这个:

console.log( myAlbum.models ); // [song1, song2, song3]

这意味着数组models与编写[song1, song2, song3]时相同,而不是像编写['song1', 'song2', 'song3']一样。报价是区别因素。