使用主干JS .get模型事件连接元素索引

时间:2016-10-14 19:57:01

标签: javascript jquery backbone.js

使用主干JS模型时遇到问题:item.get(element index)。我有一个包含1248个订单项的电子表格,我不想重复相同的代码1248次来引入所有数据。有什么方法可以连接这个代码并将所有元素索引放入一个事件?

代码:

function showInfo(cameras) {
        var camera_view = new CameraView({ model: cameras.get(1) });

        $("#content").append( camera_view.render().el );

        var camera_view = new CameraView({ model: cameras.get(2) });

        $("#content").append( camera_view.render().el );

        var camera_view = new CameraView({ model: cameras.get(3) });

        $("#content").append( camera_view.render().el );

        etc.....all the way to 1248
      }

我正在使用backboneJStabletopJS从"后端"上的Google电子表格中提取数据。 感谢

1 个答案:

答案 0 :(得分:1)

首选方法是使用_.each循环迭代集合并为每个模型呈现列表项。

function showInfo(cameras) {
  var cameraView;

  cameras.each(function(model) {
    camera_view = new CameraView({
      model: model
    });
    $("#content").append(camera_view.render().el);
  });
}

此外,由于您尝试渲染接近1200个视图,因此您将操纵DOM以在每次迭代时注入HTML。而是将HTML存储在一个单独的变量中并一次注入以减少对DOM

的操作
function showInfo(cameras) {
  var cameraView;
  var $content = $("#content");
  var html = '';

  $content.empty();

  cameras.each(function(model) {
    camera_view = new CameraView({
      model: model
    });
    html += camera_view.render().el
  });
  $content.append(html);
}