Вычисление 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;
}