javascript - 访问 Polymer 动态元素

标签 javascript polymer polymer-1.0

如何在 dom-if 条件下访问元素?

这是我模板的一部分:

<template>
   ...
   <template is="dom-if" if="{{_displayUserLevelBadge(level)}}">
      <div class="profileUserLevelContainer">
         <iron-icon id="userLevelBadge" class="icon-20" icon="chat:verified-user"></iron-icon>
         <span class="profileUserLevel">{{userLevelString}}</span>
      </div>
   </template>
   ...
</template>

我需要像这样在 Javascript 中访问 #userLevelBadge: 查看 ready 方法。

Polymer({
  is: 'custom-element',
    properties: {
      level: {
        type: String,
        value: null
      },
      userLevelString: {
        type: String,
        value: ''
      }
    },
    ready: function() {
      var userLevelBadge = this.$$('#userLevelBadge'); //return undefined
    },
    _displayUserLevelBadge: function(){
      //not including my code
      //Just returning true for simplicity
      return true;
    }
}

但它不起作用。满足条件,显示dom-if中的HTML,但我无法使用this.$$(selector)访问它,如Wiki中指定.

fiddle :https://jsfiddle.net/Fr0z3n/sntyw50u/

最佳答案

将代码包装在 this.async() 中,让 Polymer 有时间标记模板内容。

关于javascript - 访问 Polymer 动态元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34373317/

相关文章:

polymer-1.0 - 无法更改纸抽屉面板聚合物 1.0 上的抽屉宽度

html - 垂直纸 slider 元素

javascript - 在 jQuery Animate 中获得位置

javascript - 在javascript中映射之前是否需要检查数组的长度?

javascript - 您可以创建一个属性并动态填充值吗?

polymer - 选择元素( polymer 1.0)

javascript - Polymer 英雄转换的 Z-index

polymer-1.0 - 聚合物 1.0 隐藏 $ ="{{show}}"不工作

javascript - Polymer1.0如何实现长按事件?

javascript - 如何避免在 promise 回调中包装代码?