Polymer 1.0 - 按ID选择动态元素的问题

时间:2015-06-15 16:01:24

标签: javascript web-component polymer-1.0

我试图通过动态创建的id选择元素:

<dom-module id="filter-box">
  <style>
    :host {
      display: block;
    }
  </style>
  <template>
    <h4 id="title">{{title}}</h4>

    <paper-checkbox id="test">test</paper-checkbox><br>

    <template is="dom-repeat" items="{{filters}}">
      <paper-checkbox id="{{item}}">{{item}}</paper-checkbox><br>
    </template>

  </template>
</dom-module>
<script>
  (function () {
    Polymer({
      is: 'filter-box',
      properties: {
        filters: {
          type: Array,
          notify: true,
        },
        title: {
          type: String
        }
      },
      ready: function() {
        this.filters = [
          'Commercial',
          'Enterprise'
        ];
      },
      isSelected: function(filter) {
        return this.$$[filter].checked;
      }
    });
  })();
</script>

当选择isSelected(&#34;某事&#34;)时,我得到:

"Uncaught TypeError: Cannot read property 'checked' of undefined"

我可以通过这个。$。title选择标题,但我不能以这种方式选择动态元素或使用这个。$$建议here

1 个答案:

答案 0 :(得分:1)

根据您提供的参考,您应该在函数调用中使用括号调用this.$$(selector)(而不是括号)。所以用这个替换你的代码:

return this.$$('#'+filter).checked;

请注意,您可能还需要在#之前添加id选择器。