我无法弄清楚如何为自定义元素的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>
谢谢!
答案 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((_) => ...);