TypeError: grid.columns[0] не определен в Firefox Vaadin Grid

Я использую сетку vaadin. Я получил:

TypeError: grid.columns[0] не определен

В Firefox, как в названии. В Хроме работает. Код:

var grid = grid || document.querySelector('vaadin-grid');
HTMLImports.whenReady(function() {
    var json = '[["Blabla", true, "sdfsdfsd", "fsdsdfsdfsd fsdfds fsdf shfskd hds", 0, "39acbfa4-6d6b-4af9-b872-03fc70328183"]]';

    var testJSON = JSON.parse(json);
    grid.items = testJSON;

    // --> ERROR: undefined in firefox
    grid.columns[0].renderer = function(cell) {
        //...
    };    
});

Почему?


person Tiero L.    schedule 06.12.2016    source источник
comment
используйте console.log и попробуйте получить значение сетки непосредственно перед тем, как вы получите сообщение об ошибке   -  person Mahi    schedule 06.12.2016
comment
Я сделал console.log сразу после grid.items = testJSON; Он показывает сетку vaadin...: ‹vaadin-grid style=min-height: 25em; замороженные столбцы=0 class=vaadin-grid-loading x-scope vaadin-grid-0› ...   -  person Tiero L.    schedule 06.12.2016
comment
@ТьероЛ. Переменная json не содержит допустимой строки JSON. Как это вообще проходит мимо JSON.parse()?   -  person tony19    schedule 07.12.2016
comment
Оно делает. Это typo3 Fluid (php) ---> Массив json генерируется следующим образом:   -  person Tiero L.    schedule 07.12.2016
comment
Я удалил жидкий материал typo3, так что, возможно, его будет легче понять.   -  person Tiero L.    schedule 07.12.2016


Ответы (1)


После обнаружения этого: Polymer 1.0 в firefox ReferenceError: Polymer is не определено

Я мог бы решить свою проблему:

Используйте window.addEventListener('WebComponentsReady', function(e){ вместо

HTMLImports.whenReady(function() {

Как это:

var grid = grid || document.querySelector('vaadin-grid');
window.addEventListener('WebComponentsReady', function(e) {
  var json = '[["Blabla", true, "sdfsdfsd", "fsdsdfsdfsd fsdfds fsdf shfskd hds", 0, "39acbfa4-6d6b-4af9-b872-03fc70328183"]]';

  var testJSON = JSON.parse(json);
  grid.items = testJSON;

  grid.columns[0].renderer = function(cell) {
    //...
  };    
});
person Tiero L.    schedule 07.12.2016