Программно создать специальный Полимер-Элемент

У меня есть полимерный элемент со следующим HTML:

<polymer-element name="tab-bar">
  <template>
    <button>Hello</button>
    <template repeat="{{item in items}}">
      <div>This element is {{ item }}</div>
    </template>
  </template>
  <script type="application/dart" src="tab_bar.dart"></script>
</polymer-element>

Базовый класс дротиков выглядит следующим образом:

import 'package:polymer/polymer.dart';

@CustomTag('tab-bar')
class TabBar extends PolymerElement {
  List items;

  TabBar(List<String> items) {
    this.items = toObservable(items);
  }
}

При следующем подходе невозможно программно добавить элемент:

query('body').children.add(createElement(new TabBar(['One','Two','Three'])));

Итак, теперь, как я могу добавить такой полимерный элемент программно, а также установить список в конструкторе?

2 ответа

Решение

Начиная с полимера 0.8.5 вы можете использовать конструктор как

new Element.tag('tag-bar');

Кроме того, больше нет.xtag и больше.host (host == это сейчас)

кредиты идут к Seth Ladd, который объяснил это в списке рассылки полимера

Примечание: это работает только для polymer.dart < 0.8.5. Смотрите другой ответ для нового пути.

У пользовательских элементов нет конструкторов, как мы знакомы с ними в Dart. Вместо этого попробуйте это:

var tabBar = createElement('tag-bar');
tabBar.xtag.items = toObservable(['a','b','c']);

query('body').children.add(tabBar);
Другие вопросы по тегам