Как добавить пользовательский шаблон ячейки в таблицу Ember-Table

StackOverflow https://stackoverflow.com//questions/24023049

  •  21-12-2019
  •  | 
  •  

Вопрос

В прошлом я использовал шаблон vanilla handlebars для создания таблицы со ссылками на другие шаблоны, подобные этому.

<tbody>
        {{#each}}
            <tr>
                <th>
                    {{#link-to 'entities.entity' actorId}}{{/link-to}}
                </th>
                {{#each alsoKnownAs}}
                <td>
                    {{this}}
                </td>
                {{/each}}
            </tr>
        {{/each}}
        </tbody>

Используя Ember-Table фреймворк, к которому я реорганизовал этот шаблон

<div style="height: 800px;width: 100%;">
{{table-component
  hasFooter=false
  enableContentSelection=true
  columns=columns
  content=controller}}
</div>

Мой Контроллер теперь выглядит так

entitiesController = Ember.ArrayController.extend

  sortAscending: true
  sortProperties: ['displayName']
  profile_link: 'entities/profile_link'

  columns: Ember.computed ->

    AKA = Ember.Table.ColumnDefinition.create
      columnWidth: 750
      headerCellName: 'Also Known As'
      textAlign: 'text-align-left'
      getCellContent: (row) -> row['alsoKnownAs'].join(', ')

    displayName = Ember.Table.ColumnDefinition.create
      columnWidth: 200
      headerCellName: 'Entity Name'
      textAlign: 'text-align-left'
      TableCellViewClass: 'profile_link'
      getCellContent: (row) -> row['displayName']

    [displayName, AKA]

и мой пользовательский шаблон объекты/ссылка на профиль

<th>{{#link-to 'entities.entity' actorId}}{{/link-to}}</th>

Как мне настроить свой контроллер так, чтобы при нажатии на ячейку в столбце "Имя объекта" он ссылался на мой пользовательский шаблон?

Это было полезно?

Решение

Вместо того, чтобы TableCellViewClass: 'profile_link'

вы можете определить встроенный шаблон:

tableCellViewClass: Ember.Table.TableCell.extend
        template: Em.Handlebars.compile """
          {{#link-to 'entities.entity' view.cellContent}}
            {{view.cellContent}}
          {{/link-to}}
"""
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top