我正在努力学习一些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]
相反,我得到[孩子,孩子,孩子,孩子] - 我如何得到实际的名字?
答案 0 :(得分:2)
您需要pluck
name
属性。
myAlbum.pluck('name');
无法获得这样的数组:
['song1', 'song2', 'song3']
因为程序逻辑中没有变量名称。
当教程写下这个:
console.log( myAlbum.models ); // [song1, song2, song3]
这意味着数组models
与编写[song1, song2, song3]
时相同,而不是像编写['song1', 'song2', 'song3']
一样。报价是区别因素。