迭代收集的问题

时间:2013-11-18 02:01:33

标签: backbone.js collections iteration

我有下一个模型和集合定义:

var Auditoria = Backbone.Model.extend({
   defaults:{
      id: 'undefined',
      user_id: 'undefined',
      user_str: 'undefined',
      user_agent: 'undefined',
      login_from: 'undefined',
      login_date:  'undefined'
   }
});


var AuditoriaList = Backbone.Collection.extend({
   model: Auditoria,
   url: $("#ajax-call").val()
});

var sesiones = new AuditoriaList();
sesiones.fetch({
   async: false
});

正确创建了集合,日志记录显示:

  

{length:15,models:Array [15],_ byId:Object,constructor:function,   model:function ...}

但是当尝试迭代集合时(在渲染视图方法内),显然,没有正确地获取当前元素:

render: function(){
   sesiones.each(function(sesion){
      console.log(sesion);
   }, this);
   return this;
}

console.log,不返回模型,返回:

  

{cid:“c1”,attributes:Object,collection:r,_changing:false,   _previousAttributes:Object ...}

任何想法?。

3 个答案:

答案 0 :(得分:1)

  

{cid:“c1”,attributes:Object,collection:r,_changing:false,_previousAttributes:Object ...}

这是您收藏的模特

答案 1 :(得分:1)

我猜您在控制台日志中期望看到的是模型数据的JSON表示?试试这个:

console.log( sesion.toJSON() );

答案 2 :(得分:1)

如果您想获得模型的值,您应该像这样迭代集合:

sesiones.forEach(function(model) {
 console.log(model.get('user_str'));
}