Вычисление Polymer 2 с вложенными функциями в dom-repeat - PullRequest
0 голосов
/ 30 мая 2018

Я использую 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 Ответ

0 голосов
/ 02 июня 2018

Вы не можете иметь функции обратного вызова в своем 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;
}
...