何时为Dart Web组件调用已删除的生命周期方法?

时间:2013-01-18 21:14:28

标签: dart dart-webui

最新编辑:

这是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>

1 个答案:

答案 0 :(得分:0)

在此处添加答案以获得完整性:使用Polymer在Dart中使用Web组件。从DOM中删除自定义元素的实例时,会触发leftView生命周期方法。您可以在https://www.dartlang.org/docs/tutorials/polymer-intro/#life-cycle-methods了解详情。