【发布时间】:2018-05-23 00:42:09
【问题描述】:
我在访问shadow-root 时遇到问题。我需要得到img,但它不起作用。这是我的页面:
<link rel="import" href="/frontend/src/ui/breadcrumb.html">
<dom-module id="bread-crumb">
<template>
<style include="breadcrumb"></style>
<div id="wrapper">
<template is="dom-if" if="{{pageInfo.title}}">
<div class="left">
<img id="img" src$="{{pageInfo.icon}}">
<span>{{pageInfo.title}} <strong>{{pageInfo.part}}</strong></span>
</div>
</template>
<div class="links">
<template is="dom-repeat" items="[[links]]">
<a class$="{{_getSelected(item.selected)}}" href$="{{item.link}}"> {{item.title}} </a>
</template>
<!-- <template is="dom-if" if="{{item.title}}">
<a href$=""
</template> -->
</div>
</div>
</template>
<script>
class BreadCrumb extends Polymer.Element {
static get is() {
return 'bread-crumb'
}
_getSelected(selected){
return selected ? "selected" : "";
}
connectedCallback() {
this._imageHide();
}
_imageHide() {
let image = this.$.img;
if(image.src == null || image.src == undefined)
image.classList.add("hidden");
}
}
customElements.define(BreadCrumb.is, BreadCrumb);
</script>
</dom-module>
我也试过这个let image = this.shadowRoot.querySelector('#img');,但它也不起作用。上面会抛出一个错误:
Cannot read property 'img' of undefined
我尝试了其他方式 let image = this.shadowRoot.querySelector('#img'); 这给了我:
Cannot read property 'querySelector' of null
我做错了什么?有什么建议吗?
【问题讨论】:
标签: polymer-2.x