2016-12-05 3 views
0

Я использую polymer.I есть массив объектов выглядитДоступ родительского дом-повторить пункт щелкать ребенок РОМА повторить пункт

[{ 
    name:xxx, 
    address:yyy, 
    times:[ 
     {start:12, 
     End:5 
     }, 
     {start:2, 
     End:4 
     } 
     ] 
}, 
{//same format repeats 
} 
] 

Я вложенный РОМ повтор,

<template is="dom-repeat" items="{{pList}}" as="list"> 
      <paper-item> 
       <paper-item-body two-line> 
       <div>[[list.address]]</div> 
       <div secondary>[[list.name]]</div> 
       </paper-item-body> 
      <template is="dom-repeat" items={{list.times}} as="time">     
        <paper-item-body on-tap="_handleTime" two-line> 
        <div>[[time.start]]</div> 
        <div>[[time.end)]]</div> 
        </paper-item-body> 
      </template> 
      </paper-item> 
    </template> 

I имеют функцию tap во втором dom-repeat, поэтому нажимаем ниже функцию, здесь я могу получить доступ к объекту времени. Как я могу получить доступ к имени и адресу, который находится в первом dom-repeat, используя ссылку «e», как показано ниже? Я попробовал parentElement, но он не работает!

 _handleTime:function(e) { 
     console.log(e.model.time); //displays time obj i.e {start:12,End:5} but I'm trying to get {name,address,{start,end}} 
     console.log(e.parentElement);//gives error 
     //I'm trying to get entire object like {name:xxx,address:yyy,times:[]} 

    } 

ответ

1
var item = this.$.firstRepeat.itemForElement(e.target); 

где firstRepeat является идентификатор первого dom-repeat,

проверить эту example

+0

спасибо братан !! он работал), но у меня было еще одно dom-if, которое охватывает родительский dom-repeat, поэтому я не смог найти id = "firstRepeat", наконец, решил с этим. $$ ('# firstRepeat'). itemForElement (e. мишень); thanx для решения –