var currentVideos = this.get('items').pluck('video');
// TODO: Why does pluck not work here?
var currentVideosDurations = _.map(currentVideos, function (currentVideo) {
return currentVideo.get('duration');
});
var test = _.pluck(currentVideos, 'duration');
console.log("Test:", test);
我想知道为什么我的第二次采摘不起作用,但我的地图工作得很好?我认为这些是等效的用法。
这是一个控制台日志的屏幕截图,显示了this.get('items')和currentVideos数组。
答案 0 :(得分:7)
主干模型对象不会在顶级javascript对象中存储模型中的get
属性。 currentVideo
主干模型对象实际上将属性存储在javascript对象的更深处,位于(currentVideo.attributes
)中。
_.pluck(currentVideos, 'duration')
检查顶级属性(例如currentVideo['duration']
),该属性不存在。
区别在于Backbone Model对象比基本的javascript对象更复杂,只需检索get
就不会object['attrName']
属性。
答案 1 :(得分:3)