2017-05-19 7 views
0

ポリマー要素が2つある<element-a> <element-b>両方が親の子要素<element-c>の内側にあり、それぞれ異なるファイル。ポリマーJavascript。オンタップイベントの際にデータを渡すことができなかったポリマー要素を呼び出さずに他のポリマー要素へ

<element-a>には、<paper-listbox>があります。内部には、その値を取得するためにタップするイベントがある<paper-item>があります。

目標は次のとおりです。<element-b>側では、私はこのようなURLの何かをAPIから取得したい:

API /のconfigs/{{tempId}}

<p>中にそれを呼び出しますであり、<element-a>オンタップイベントから<paper-listbox>が発出されたとき。 {{tempId}}は<element-a>側から選択した<paper-listbox>の値です。

私は既に<paper-listbox>の値をコンソールに表示しようとしましたが、要素を呼び出さずに<element-b>に渡す方法はわかりません。既に{{tempId}}の一時的な値を設定するためにセッションストレージを使用するのと同じようにいくつかの方法で試行されましたが、<element-b>側でそれを呼び出すことはできません。それを「準備:機能」から呼び出そうとしましたが、うまく動作しませんでした。私はちょうど確かめるためにそれを試みた。

以下はあなたの助けのいずれかが非常に高く評価され、説明

// element-a.html 
    ... 
    <paper-listbox selected="0"> 
     <template is="dom-repeat" items="{{response.data}}"> 
      <paper-item value="{{item.id}}" on-tap="_getId"> 
      Configuration ID {{item.id}} 
      </paper-item> 
     </template> 
     </paper-listbox> 

<script> 
... 
_getId: function(e) { 
    var tempId = e.path[0].value; 
    console.log(e.path[0].value); 
} 
... 
</script> 

その後、

//element-b.html 
<iron-ajax 
    ... 
    url="api/configs/{{tempId}}" 
    ... 
    > 

のためのいくつかのコードです。ありがとう。プロパティは、親要素である場合

+0

上に示したようにelement-bにバインドし、あなたの ''と 'は'単一のファイルにあるのでしょうか? – aries12

+0

私は何かを忘れて申し訳ありません、 ''と ''は、親要素の中の子要素であり、 ''と言い、それぞれが異なるファイルにあります。 *ご質問にも編集しました –

答えて

1

、あなたは次のように自分の子要素にそれを使用することができ、この

<element-b temp-id=[[tempId]]></element-b>

しかし、あなたの場合には、あなたの親要素でリスナーを持つことができます

listeners: { 
'on-tap-listener': '_abc' 
} 

このイベントを<element-a>で呼び出してください。

_getId: function(e) { 
    var tempId = e.path[0].value; 
    console.log(e.path[0].value); 
    this.fire('on-tap-listener',tempId); 
} 

は今、あなたはあなたの親要素であなたのtempIdを持っており、プロパティに割り当て、

_abc:function(data){ 
    this.tempId = data.detail.tempId; 
}, 
+0

ありがとうございます。これは私のために最後のコードの少しの編集で動作します '_abc:function(data){ this.tempId = data.detail; }、 ' 私はオンタップイベントの後に親要素の{{tempId}}値をチェックできます。オンタップが発生した後、{{tempId}}の値がすでに ' 'に渡されていれば私はまだ夢中です。私は ' '側で確認する方法を知らない。 –

関連する問題