我使用的是聚合物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退出。在页面的源代码中,纸张按钮中没有数据对话框。
有什么想法吗?
答案 0 :(得分:0)
在自定义元素上使用数据属性时,我遇到了类似的问题。您可能想订阅this polymer issue。
作为一种解决方法,将data属性放在作为按钮父级的标准元素中,然后搜索该属性。
此外,您可能需要考虑使用var button = Polymer.dom(e).localTarget
而不是直接访问e.target,因为后者会在阴暗的dom下为您提供更深层次的dom树元素。