0

Я стараюсь использовать Backgrid.js. У меня есть сетка (я просто принимаю server-mode example).Событие backgrid: rendered не работает - Backgrid.js

Эта библиотека успешно построила сетку для меня. Но я хочу сопоставить некоторые ячейки с их эквивалентом. Например, у меня есть столбец "region_id". Я хочу карту region_id -> region_name. Для выполнения этой задачи я подписался на мероприятие backgrid:rendered.

var grid = new Backgrid.Grid({ 
    ///// 

    collection: issues 
}); 

grid.on('backgrid:rendered', function(g) { 
    $('tr').each(function (i, row) { 

     var $row = $(row); 

     console.log("Q"); 
    }); 
}); 

Но я получаю сбой. Нет никаких повторений по строкам таблицы. Но эти строки существуют в таблице. В чем проблема?

+0

Я создал небольшой jsfiddle [здесь] (http://jsfiddle.net/dethariel/gtt68z6d/). Можете ли вы отредактировать его, чтобы воспроизвести ошибку? Потому что сейчас я вижу, что событие уволено. – Dethariel

ответ

0

Убедитесь, что оба из следующих условий:

  • вы делаете вызов grid.render() метода
  • issues переменными относится к непустой коллекции во время оказания
+0

Оба эти утверждения являются истинными. Процесс рендеринга успешный. Во всяком случае, я решил свою проблему, используя некоторое обходное решение. – Denis

0

К сожалению Backgrid запускает обработанное событие перед тем, как заголовок, нижний колонтитул и сама таблица находятся на экране. Итак, когда ваше событие активируется, в DOM еще нет строк. Я решил свою проблему, позвонив по моему коду после команды grid.render(). $ El . После того, как эта таблица должна быть в DOM. По крайней мере, заголовок был, и это все, что мне нужно.

Я застрял со старой версией Backgrid 0.2.6. Поэтому не забывайте, что мой ответ с этой точки зрения.