簡體   English   中英

在Polymer 1.0中使用帶紙按鈕的事件時無法訪問數據屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM