Программно создать специальный Полимер-Элемент
У меня есть полимерный элемент со следующим 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);