Разрешить потребителю полимерного элемента предоставить шаблон

Я создаю полимерный элемент, который отображает список других полимерных элементов. Я хотел бы, чтобы потребитель элемента мог отбросить элемент списка на своей странице и предоставить шаблон, который будет использоваться в элементе элемента списка. Если они не предоставляют шаблон, я хочу использовать шаблон по умолчанию.

Я попытался сделать это, привязавшись к атрибуту ref шаблона. Кажется, это работает, если я предоставлю собственный шаблон, но не если я его не предоставлю.

Нерабочий пример: http://jsbin.com/futiti/7/edit?html,output

Элемент элемента списка:

<polymer-element name="my-item" attributes="item itemTemplate">
  <template>
    <template bind="{{item}}" ref="{{itemTemplate}}">
    </template>

    <template id="_itemTemplate">
      <li>Default template: {{name}}</li>
    </template>
  </template>
  <script>
    Polymer({
      itemTemplate: '_itemTemplate',
      created: function() {
        this.item = {};
      }
    });

  </script>
</polymer-element>

Элемент списка:

<polymer-element name="my-list" attributes="drag name list itemTemplate">
  <template>
    <template repeat="{{i in list}}">
      <my-item item="{{i}}" itemTemplate="{{itemTemplate}}"></my-item>
    </template>
  </template>
  <script>
    Polymer({
      ready: function() {
        this.list = [{name: 'Item 1', id: 'item1'},
                     {name: 'Item 2', id: 'item2'},
                     {name: 'Item 3', id: 'item3'}];
      }
    });

  </script>
</polymer-element>

person jupe    schedule 30.09.2014    source источник


Ответы (1)


Понятно!

Все, что мне нужно было сделать, это определить шаблон по умолчанию перед шаблоном, который привязывается к нему с помощью ref: http://jsbin.com/futiti/10/edit?html,output

person jupe    schedule 30.09.2014
comment
За исключением того, что это работает только тогда, когда шаблоны определены в одном файле. - person jupe; 01.10.2014