为什么polymer.dart元素出现类型错误?

为什么polymer.dart元素出现类型错误?,dart,dart-polymer,Dart,Dart Polymer,我有一些代码: //main.dart: 真空总管{ initPolymer(); var view=new ChatAppConsumer(); } //聊天室应用程序 @CustomTag(“聊天应用程序”) 类ChatApp扩展了关联{ ChatApp.created():super.created(); } 类ChatAppConsumer{ 最终ChatApp视图=新元素.tag('chat-app'); } 据我所知,我所有的文件都被正确引用了,我正在调用initPolymer()

我有一些代码:

//main.dart:
真空总管{
initPolymer();
var view=new ChatAppConsumer();
}
//聊天室应用程序
@CustomTag(“聊天应用程序”)
类ChatApp扩展了关联{
ChatApp.created():super.created();
}
类ChatAppConsumer{
最终ChatApp视图=新元素.tag('chat-app');
}

据我所知,我所有的文件都被正确引用了,我正在调用
initPolymer()
在我尝试创建自定义标记之前,但是我得到了HtmlElement返回的类型错误,
new Element.tag('chat-app');不是类型
ChatApp`但我在另一个软件包中使用了完全相同的模式,它在那里工作得非常完美。以前有人遇到过类似的情况吗?

initPolymer
还不够,您应该向
initPolymer.run(()=>…)
传递一个闭包,它执行与聚合物相关的代码

有关更多详细信息,请参阅

=聚合物0.16.0 //main.dart: 真空总管{ initPolymer().然后((区域)=>zone.run(){ var view=new ChatAppConsumer(); })); }

<0.16.0

//main.dart:
真空总管{
initPolymer()运行(){
var view=new ChatAppConsumer();
});
}

我将在前面给出,但我认为这不是必要的,因为我做了完全相同的事情,正如您所看到的,这是一个计时问题,并非在所有配置中都会发生,但为了确保正确计时,您绝对应该这样做。据我记忆所及,在作为JavaScript运行之前,这不会导致问题。聚合物初始化经常从一个聚合物版本更改到下一个版本,因此这可能在一个版本中有效,但在下一个版本中无效。我对这个问题没有太多的经验,因为我在聚合物应用程序中根本不使用自定义的
main()
,或者在必要时,我确保正确的初始化(请参阅我的答案)。作为一个副词,if.run(()=>)应该在init完成后运行,这看起来就像是一个未来,所以他们没有选择只使用它似乎很奇怪。然后(()=>),啊,谢谢你的回答。我想知道同样的事情,但没有调查或询问。也许他们选择这种形式是因为它与Polymer.js中的类似(不知道它是否真的类似),或者可能是因为在您传递的闭包执行后必须运行一些代码(对此表示怀疑)。