Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 聚合物动力元件_Javascript_Polymer_Polymer 1.0 - Fatal编程技术网

Javascript 聚合物动力元件

Javascript 聚合物动力元件,javascript,polymer,polymer-1.0,Javascript,Polymer,Polymer 1.0,如果条件满足,如何访问dom中的元素 这是我的模板的一部分: <template> ... <template is="dom-if" if="{{_displayUserLevelBadge(level)}}"> <div class="profileUserLevelContainer"> <iron-icon id="userLevelBadge" class="icon-20" icon="chat:ve

如果条件满足,如何访问
dom中的元素

这是我的模板的一部分:

<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>
但它不起作用。条件满足,如果
,则显示
dom中的HTML,但我无法使用
this.$$(选择器)
访问它,如中所指定


Fiddle:

将代码包装在
this.async()
中,以便给Polymer一些时间来标记模板内容

如果条件为真,它应该工作,否则不行。如果您需要在false时访问,您可能希望使用
hidden
。@GünterZöchbauer它应该使用,但不使用。用fiddle更新。听起来很熟悉,我想你需要给Polymer一些空气来呼吸,用
this.async()包装你的代码,以在
if
模板上盖章。谢谢!我只是试了一下,效果不错!
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;
    }
}