2016-11-25 75 views
0

我有一个问题越来越此刻聚合物子元素DOM被加载时。这里是我的情况:聚合物儿童DOM加载

当我按下一个按钮,在父亲组件,AJAX请求被触发。当获得回应绑定到变量时,这会变成重复并创建子项目。所以我的问题是找到时所有子元素加载的那一刻,因为我想用this.$$()选择子组件和触发所需的方法和滚动到视图。

如果我在获取请求后使用this.$$()选择器,在that.set('variable', response)之后,DOM仍然没有得到那些子组件(提前)。

也尝试将选择器放入attached(),但它在加载页面时重新加载,按钮按下之前,所以按下按钮时,不会调用此方法。

任何建议如何让那一刻,当我可以使用选择器来选择子元素?

谢谢!

回答

1

尽量监听dom-change事件的dom-repeat

<base href="https://polygit.org/components/"> 
 
<link rel="import" href="polymer/polymer.html"> 
 
<dom-module id="repeat-completion"> 
 
    <template> 
 
    <style></style> 
 
    <template is="dom-repeat" items="{{items}}" as="item" on-dom-change="_domComplete"> 
 
     <div id$="num{{index}}">{{item}}</div> 
 
    </template> 
 
    </template> 
 
</dom-module> 
 
<script> 
 
    Polymer({ 
 
    is: 'repeat-completion', 
 
    properties: { 
 
     items: { 
 
     type: Array, 
 
     value: function() { 
 
      return [1, 2, 3, 4, 5] 
 
     } 
 
     } 
 
    }, 
 
    _domComplete: function(e) { 
 
     console.log("complete", e); 
 
     console.log(this.$$("#num1")); 
 
    } 
 
    }) 
 
</script> 
 

 

 
<repeat-completion></repeat-completion>