[英]Data attribute not accessible using in event with paper-button in Polymer 1.0
我發布此消息是因為在此SO線程中發布的答案對我不起作用。 我想通過紙質按鈕(在dom-repeat中)將額外的數據參數傳遞給點擊事件處理程序。 使用以下代碼段的結果提供了沒有數據的子紙張材料元素。
使用方法:
<template is="dom-repeat" items="{{someParam}}>
<paper-button on-tap="_handleTap" data-args="{{item}}">...</paper-button>
</template>
和處理:
var args = e.target.getAttribute('data-args').split(',');
要么
e.target.dataset.args
兩者都返回<paper-material ...>...</paper-material>
到底是怎么回事? 目標為何不返回被點擊的紙質按鈕或其中的數據?
從模板實例訪問數據的最有效方法是執行以下操作:
<template is="dom-repeat" items="[[someParam]]">
<paper-button on-tap="_handleTap">...</paper-button>
</template>
...
_handleTap: function(e) {
var model = e.model.item;
// Do something
}
要綁定到諸如data- *之類的本機屬性,您必須使用屬性綁定( $=
)。 對於事件重定向,您必須使用Polymer.dom(event).localTarget
才能到達發出該事件的適當目標,在這種情況下,您需要使用紙按鈕( rootTarget
也會返回紙質材料)。
這是我所做的一個工作示例。 http://jsbin.com/fehene/edit?html,輸出
經過一番破解之后,結果證明目標上的dataHost屬性指向原始的點擊元素。 不知道為什么沒有對此進行記錄。 它可能不可靠,但對我有用。
event.target.dataHost.args
更新:上面的畢竟不起作用
啊。 仍在竊聽。
更新:事實證明,您必須使用駝峰式的數據屬性。
event.target.dataHost.dataArgs
超級令人費解和隱藏:-/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.