动态创建的数据对话框

时间:2015-08-19 21:55:32

标签: templates polymer repeat

我使用的是聚合物1.0。 我试图用模板重复在动态创建的元素上打开一个clic。 这是代码:

<paper-button 
     data-dialog="modal"
     on-click="dialogClick">
                Click
</paper-button>

和脚本(来自doc):

dialogClick: function(e) {
      var button = e.target;

      while (!button.hasAttribute('data-dialog') && button !== document.body) {
        button = button.parentElement;
      }

      if (!button.hasAttribute('data-dialog')) {
        return;
      }

      var id = button.getAttribute('data-dialog');
      var dialog = document.getElementById(id);
      alert(dialog);
      if (dialog) {
        dialog.open();
      }
    }

仅当数据对话框的值是简单文本时,才能执行此操作。例如,如果我想通过data-dialog="{{item.dialogName}}"更改它,它就无法工作。 while循环找不到它,并使用if退出。在页面的源代码中,纸张按钮中没有数据对话框。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在自定义元素上使用数据属性时,我遇到了类似的问题。您可能想订阅this polymer issue

作为一种解决方法,将data属性放在作为按钮父级的标准元素中,然后搜索该属性。

此外,您可能需要考虑使用var button = Polymer.dom(e).localTarget而不是直接访问e.target,因为后者会在阴暗的dom下为您提供更深层次的dom树元素。