2016-10-14 1 views
1

Проблемы с использованием базовой модели JS: item.get(element index). У меня есть таблица с 1248 позициями, и я не хочу повторять один и тот же код 1248 раз для ввода всех данных. есть ли способ передать этот код и привести все индексы элементов в одно событие?Индексы конкатенационных элементов с основным кодом JS .get model event

Код:

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 
     } 

Im работая с backboneJS и tabletopJS для извлечения данных из таблицы Google на "фоновый". Спасибо

+0

Вы пробовали простой цикл? – FrankerZ

+0

да, вы можете сделать это, используя коллекцию в позвоночнике. используйте underscore.js каждый метод для извлечения всего объекта из коллекции один за другим и рендеринга. – Mahi

+0

https://www.youtube.com/watch?v=eCYlcpfIXck это видео поможет – Mahi

ответ

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

пример 1, кажется, отлично работает! большое вам спасибо за вашу помощь! – jazzninja