BackboneJs 如何遍历集合从每个模型中获取特定值

BackboneJs how to loop through collection get specific value from each model

我有一个 Backbone 集合,我想从其中获取每个模型的特定值,然后将该值插入到 Iframe 中。

所以,我有多个 iframe,我想在其中动态插入数据源,iframe 的基本代码是:

<iframe class="playlist" data-src=""></iframe>

和我的 Backbone 代码:

this.collection.each(function(spotify) {
    var service = spotify.get('services').spotify;
    var spotifyplayId = service.substr(service.lastIndexOf('/') +1);
    console.log(spotifyplayId)
    $('iframe.playlist').each(function(spotifyplayId) {
        $(this).attr('data-src', 'https://embed.spotify.com/?uri=spotify:user:digster.dk:playlist:'+ spotifyplayId);
    });
});

console.log(spotifyplayId) 给了我正确的数据,只有动态插入 Iframes 失败了。我做错了什么?

试试这个

this.collection.each(function(spotify, index) {
    var service       = spotify.get('services').spotify,
        spotifyplayId = service.substr(service.lastIndexOf('/') +1);

    $('iframe.playlist').eq(index).attr('data-src', 'https://embed.spotify.com/?uri=spotify:user:digster.dk:playlist:' + spotifyplayId);
});

因为在您的示例中 spotifyplayId 是循环中的索引 (0, 1, 2),但您需要从父范围获取 spotifyplayId。在我们的例子中,最好使用 .eq 而不是 $.each.