最新编辑:
这是web-ui中的一个未解决的问题:https://github.com/dart-lang/web-ui/issues/245
此前:
我正在试图弄清楚如何从web component lifecycle methods调用removed()
。查看下面示例生成的代码,我看到在autogenerated.dispatch();
之后调用了replaceElement()
,我希望调用removed()
,但是我没有看到我的print语句输出。
也许相关:我浏览了一下规范,试图了解build.dart
的输出对生命周期方法的影响。也许这个规格已经过时了?即使在{{1}的自动生成代码中调用composeChildren()
,我仍然看不到instantiation section规范中列出的composeChildren()
this web-ui issue comment }}
这个问题背后的原因是我对能够以编程方式(通过规范中的实例化说明)在单个父html文件中加载和卸载Web组件的Dart webapp感兴趣,而不必在html中声明Web组件。我正在运行web_ui-0.2.11。谢谢!
WebComponent的:
build.dart
父html文件:
<!DOCTYPE html>
<html><body>
<element name="x-lifecycle-test" constructor="LifecycleTest" extends="div">
<template> {{foo}} </template>
<script type="application/dart">
import 'dart:html';
import 'package:web_ui/web_ui.dart';
var foo = "testing lifecycle methods";
class LifecycleTest extends WebComponent{
inserted() => print("inserted");
removed() => print("removed");
}
</script>
</element>
</body></html>
答案 0 :(得分:0)
在此处添加答案以获得完整性:使用Polymer在Dart中使用Web组件。从DOM中删除自定义元素的实例时,会触发leftView
生命周期方法。您可以在https://www.dartlang.org/docs/tutorials/polymer-intro/#life-cycle-methods了解详情。