2012-12-14 142 views
0

我刚开始在我的应用程序中集成backbone.js。我有一个关于遍历集合中每个模型的问题。遍历Backbone集合

我基本上想要获得集合中的每个模型的URL,并将这些URL附加到它的对应模型。我现在正在这样做,我只想知道是否有其他方式来做到这一点?

getItemsURLs: function(collection){ 

    var idsInCollection = []; 

    collection.each(function(model) { 
     idsInCollection.push(model.get('id')); 
    }); 

    makeServiceCall({ 
     data: idsInCollection, 
     success: function(data) { 
      collection.each(function(model,i) { 
       model.set({ url: data.urls[i]}); 
      }); 
     } 
    }); 
} 

回答

2

使用pluck更简洁:(正如asawyer指出,pluckmapeach更简洁)

var idsInCollection = collection.pluck('id'); 

+3

'collection.pluck( 'ID' )' – asawyer

+1

太棒了。我知道我会从这个问题中得到一些东西。 设置属性如何,我们有类似于pluck设置url的方法吗? – sublime

+0

@johnknaan不是我所知道的。 'pluck'实际上来自underscore.js库。 – asawyer