Polymer panelSelectedChanged的自动绑定

Polymer panelSelectedChanged的自动绑定,polymer,Polymer,打开抽屉 t.addEventListener('template-bound', function() { document.querySelector('core-drawer-panel').addEventListener('core-select', function(e) { console.log('Selection changed:', e.detail.isSelected)

打开抽屉

        t.addEventListener('template-bound', function() {
            document.querySelector('core-drawer-panel').addEventListener('core-select', function(e) {
                console.log('Selection changed:', e.detail.isSelected)
                console.log('Selection changed:', e.target.selected)
            })
        })
闭上抽屉

Selection changed: false 
Selection changed: drawer 
Selection changed: true 
Selection changed: drawer 

我自己没有尝试过,因为我没有一个工作示例来说明
的使用,但是我可以看到
是一个
元素,它保持
选中的状态

根据
的文档,应在选择状态更改时激发

因此,您应该能够监听该事件,并根据该事件判断事情何时发生了变化,例如(未测试):

或者,始终可以使用(作为聚合物库的一部分拉入)来检测聚合物元素外部的任意变量何时发生变化。在您的示例中,您可以使用来观察对
{t:'panelSelected'}
的更改


我认为在这种情况下,在可能的情况下倾听事件的方法更干净,但是观察者方法是问题的一个更一般的解决方案,它直接与聚合元素中的
panelSelectedChanged
处理程序相关。

Nice:)不知道您是如何发现的,但事件正在起作用:PWell。。。不幸的是,我能够理解它的唯一方法是阅读源代码并了解核心选择器是如何工作的。我将为文档提交一个bug。存档以更新文档,仅供参考。
Selection changed: false 
Selection changed: drawer 
Selection changed: true 
Selection changed: drawer 
Selection changed: false
Selection changed: main
Selection changed: true 
Selection changed: main      
  document.querySelector('template').addEventListener('template-bound', function() {
    document.querySelector('core-drawer-panel').addEventListener('core-select', function(e) {
      console.log('Selection changed:', e.detail);
    });
  });