如何从Polymer Dart 1.0中的任何自定义元素外部监听自定义事件?

时间:2016-01-03 07:51:20

标签: dart dart-polymer

我无法弄清楚如何为自定义元素的headerState 外部PaperScrollHeaderPanel属性设置事件侦听器(具体来自{ {1}}功能)。

我尝试了各种方法,但没有任何方法可以触发我的回调:

main

headerPanel.on['headerState-changed'].listen((_) => ...);

或声明性地

headerPanel.addEventListener('headerState-changed', (_) => ...);

我在函数上使用和不使用<paper-scroll-header-panel on-headerstate-changed="handleHeaderStateChanged" ...> 注释时尝试了这个,因为我不确定它是否在Polymer自定义元素之外有任何影响。

我知道如何在自定义元素内部或使用dom-bind模板时设置事件处理程序,但我相信应该有一种方法可以在没有它的情况下使用它并且它让我烦恼我的整个@reflectable只是一个自定义元素,只是为了接收一个事件。

我目前正在使用:

<body>

谢谢!

2 个答案:

答案 0 :(得分:0)

这个

headerPanel.on['headerState-changed'].listen((_) => ...);

应该是

headerPanel.on['header-state-changed'].listen((_) => ...);

属性名称区分大小写,Polymer将它们从/转换为camelcase / snakecase

答案 1 :(得分:0)

正如评论中所讨论的,问题是聚合物元素的Dart版本中的headerState属性当前不会通知。我现在通过聆听paper-header-transform事件来解决这个问题:

headerPanel.on['paper-header-transform'].listen((_) => ...);