2017-04-19 6 views
4

私はポリマー2.0を使用していますが、私はdom-repeatを別のTo-doカード用に持っています。私がしたいのは、カードをクリックするとカードを取り除くことです。Polymer 2.0のタップ機能でパラメータを渡すにはどうすればよいですか?

on-tap=deleteNote([[index]])これを試しましたが、dom-repeatのインデックスを使用しています。ただし、Polymerはこの機能を実行しません。

私は間違っていますか?

答えて

-2

on-tapは、ポリマー2.0では実装されていないようです。代わりにon-clickを使用すると、それは動作します。

EDIT:以下のコメントを参照してください。

+4

オンタップがあります。 PolymerジェスチャーのEventListenerを拡張する必要があります。 'Class Foo extends Polymer.GestureEventListeners(Polymer.Element){}' –

+0

@KubaŠimonovský 'click'は[今すぐお勧めです](https://www.polymer-project.org/2.0/docs/devguide/gesture-events)forモバイルを「タップ」する。 – brandaemon

+0

@brandemon yep、そうです。人々は 'on-click'を使うべきです –

-1

まあ、私はあなたができないことを認識しています。インターネット上でそれについて多くの議論があります。

もちろん、関数に引数を渡す方法があります。要素の属性に[[index]]を保存し、必要に応じて属性を取得することができます。

例:スクリプトで次に

<div on-tap='_deleteNote' indexed$='[[index]]'> 

_deleteNote(e) { 
    var index = e.target.getAttribute('indexed'); 
    ... 
} 

あなたがindexを取得したら、あなたはそれでやりたいことができます。

ポリマー2.0でハイブリッド要素を使用していない場合は、ポリマージェスチャーを拡張することを忘れないでください。

class Foo extends Polymer.GestureEventListeners(Polymer.Element) {} 

それについての詳細:https://www.polymer-project.org/2.0/docs/devguide/gesture-events#using-gesture-events

は、ハイブリッド要素は何か:https://www.polymer-project.org/2.0/docs/devguide/hybrid-elements

9

別の解決策は、event.targetdatasetオブジェクトである可能性があります。

<div on-tap="doSomething" data-item$="[[item]]"></div> 

をそして、あなたのdoSomething()リスナーの中に、あなたはdatasetオブジェクトを取得することができます:あなたはdata-接頭辞を使用してプロパティを定義することができます

doSomething(event) { 
    const item = event.target.dataset.item; 
    ... 
} 
0

あなたはev.modelからモデルにアクセスすることができます。したがって、ev.model.indexからインデックスにアクセスできます。

関連する問題