以下代码定义Polymer元素 作为此类的有效默认构造函数,我需要什么? 我的问题是适当的构造函数需要什么
import 'package:polymer/polymer.dart';
import 'lib/NPIDefs.dart';
import 'dart:html';
/**
* A Polymer click counter element.
*/
@CustomTag('detail-panel')
class NPIDetailPanel extends PolymerElement {
@published @observable NPIRecord record;
@observable String detailPanelICON = "unfold-less";
NPIDetailPanel.created() : super.created() {
}
setValue(NPIRecord npiRec) {
record = npiRec;
}
void dremoveDetailPanel() {
Element e;
e = shadowRoot.querySelector('#dpanel');
if(e != null) {
e.remove();
}
}
以下代码获得了一个类' NPIDetailPanel'没有默认的构造函数错误 请说明如何执行默认构造函数 在类的定义中
void addDetailPanel(Event e) {
NPIDetailPanel e1;
e1 = new NPIDetailPanel();
}
/* How do I add a proper default constructor? */
答案 0 :(得分:1)
您可以使用new Element.tag('some-tag');
来创建Polymer元素的新实例
只需将包含它的工厂构造函数添加到Polymer元素类中。
@CustomTag('detail-panel')
class NPIDetailPanel extends PolymerElement {
factory NPIDetailPanel NPIDetailPanel() => new Element.tag('detail-panel'); // <== added
@published @observable NPIRecord record;
@observable String detailPanelICON = "unfold-less";
NPIDetailPanel.created() : super.created() {
}
setValue(NPIRecord npiRec) {
record = npiRec;
}
void dremoveDetailPanel() {
Element e;
e = shadowRoot.querySelector('#dpanel');
if(e != null) {
e.remove();
}
}
}