Вычисление Polymer 2 с вложенными функциями в dom-repeat

Я использую vaadin-grid для динамического создания таблицы (включая количество столбцов!), Как это

<vaadin-grid id="grid" style="flex:1" items="[[tableData]]">  
    <template is="dom-repeat" items="[[tableColumns]]" as="column">
        <vaadin-grid-column>
            <template class="header">                                  
                [[column.header]]                                                                                                           
           </template>
            <template>
                <!--[[formatNumberForTable(get(column.value, item))]]--> ***
                [[get(column.value, item)]]
            </template>
        </vaadin-grid-column>
    </template>  
</vaadin-grid> 

tableColumns заполняется во время выполнения и определяет количество столбцов и их заголовков. Чтобы динамически определить, какое свойство item для отображения в отдельных столбцах мне посоветовали использовать get(column.value, item) где column.value динамически заполняется именем соответствующего свойства. Это хорошо работает.

Проблема в том, что я также хотел бы отформатировать значение. Но код, такой как строка, отмеченная ***, не работает, он выводит исходный код вместо значения.

Как я могу отформатировать мои значения?

1 ответ

Решение

Вы не можете иметь функции обратного вызова в вашем HTML-коде.

<!--[[formatNumberForTable(get(column.value, item))]]--> ***

Позволять formatNumberForTable вместо этого позвоните get метод внутри себя.

[[formatNumberForTable(column.value, item)]]

formatNumberForTable: function(column.value, item) {
  var variable = this.get(column.value, item);

  // do something more with 'variable'

  return variable;
}
Другие вопросы по тегам