使用主干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
}
我正在使用backboneJS
和tabletopJS
从"后端"上的Google电子表格中提取数据。
感谢
答案 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);
}