Polymer 2에서 그림자 DOM에있는 urls
이라는 속성을 변경하려고합니다. 나는 var loader
에서 그것을 애써하려고 노력한다. 나는 시도했다 :Polymer 2의 shadow DOM에서 querySelector가 작동하지 않습니다.
var loader = document.querySelector('#urls');
var loader = this.shadowRoot.querySelector('#urls');
var loader = Polymer.dom(this).querySelector('#urls');
var loader = this.$.urls;
var loader = this.$$.urls;
var loader = Polymer.dom(this.root).querySelector('#urls')
아무 것도 작동하지 않는다. 무슨 일이야? 여기 문서에 <ami-loader2>
을 볼 수 있습니다
<link rel="import" href="../bower_components/polymer/polymer-element.html">
<link rel="import" href="shared-styles.html">
<link rel="import" href="ami-loader2.html">
<dom-module id="my-view2">
<template is="dom-bind" id="urls">
<style include="shared-styles">
:host {
display: block;
padding: 10px;
}
</style>
<ami-loader2 urls="[[urls]]"></ami-loader2>
</template>
<script>
class MyView2 extends Polymer.Element {
static get is() { return 'my-view2'; }
}
window.customElements.define(MyView2.is, MyView2);
var t2 = ['36444280', '36444294', '36444308', '36444322', '36444336'];
var urlsstring = t2.map(function(v) {
return 'https://cdn.rawgit.com/FNNDSC/data/master/dicom/adi_brain/' + v;
});
//var loader = document.querySelector('#urls');
//var loader = this.shadowRoot.querySelector('#urls')
//var loader = Polymer.dom(this).querySelector('#urls')
var loader = this.$.urls
loader.urls = urlsstring;
</script>
</dom-module>
답변 해 주셔서 감사합니다. id를' ami-loader2>'에 추가하고'console.log (this.shadowRoot.querySelector ('#loader')); '하지만 여전히'속성을 읽을 수 없습니다 'querySelector'undefined' 오류가 발생합니다. 나는 무슨 일이 벌어지고 있는지 모르겠다. ( –
Rashomon
당신은'this' 클래스에 들어가기 만하면된다. 그래서 준비된 함수 나 연결된 함수 내에서 호출해야한다 ... 더 완전한 클래스를 보여주기 위해 나의 대답을 편집했다. – daKmoR
고맙다. 매우 효과적이다 :) – Rashomon