【问题标题】:Problems iterating collection迭代集合的问题
【发布时间】:2013-11-18 02:01:32
【问题描述】:

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

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

集合已正确创建,日志显示:

{长度:15,模型:数组[15],_byId:对象,构造函数:函数, 型号:功能……}

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

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

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

{cid:“c1”,属性:对象,集合:r,_changeing:false, _previousAttributes: 对象…}

有什么想法吗?

【问题讨论】:

  • 是什么让您认为{cid: 'c1', ...} 不是模特?你希望console.log(sesion) 在控制台中添加什么?
  • 你能做一个jsFiddle吗?

标签: backbone.js collections iteration


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    {cid:“c1”,属性:对象,集合:r,_changed:false,_previousAttributes:对象...}

    这是您收藏的模型

    【讨论】:

      【解决方案3】:

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

      console.log( sesion.toJSON() );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-28
        • 2017-03-10
        • 2011-04-25
        • 1970-01-01
        • 2022-06-16
        相关资源
        最近更新 更多