1
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);

2 番目のプルが機能しないのはなぜかと思っていましたが、マップは正常に機能しますか? これらは同等の使用法だと思いました。

これは、this.get('items') と currentVideos の配列を示すコンソール ログのスクリーンショットです。

ここに画像の説明を入力

4

2 に答える 2

7

getバックボーン モデル オブジェクトは、トップ レベルの JavaScript オブジェクトでモデルから取得したプロパティを格納しません。バックボーン モデル オブジェクトは、currentVideo実際には属性を JavaScript オブジェクト内のより深い部分 ( currentVideo.attributes) に格納します。

_.pluck(currentVideos, 'duration')currentVideo['duration']存在しない最上位属性 (例: ) をチェックします。

違いは、バックボーン モデル オブジェクトが基本的な JavaScript オブジェクトよりも洗練されており、get取得するだけで属性を作成しないことですobject['attrName']

于 2013-08-14T17:06:02.327 に答える