나는 아래 myapp.html 같이 내 응용 프로그램에 웹 구성 요소의 수를 추가하는 경우 :다트 웹 UI : 웹 구성 요소 내의 항목에 대한 참조를 얻으려면 어떻게해야합니까?
<head>
<link rel="components" href="package:xclickcounter/xclickcounter.html">
</head>
<body>
<div id="container1"><x-click-counter></x-click-counter></div>
<div id="container2"><x-click-counter></x-click-counter></div>
<div id="container3"><x-click-counter></x-click-counter></div>
<div id="container4"><x-click-counter></x-click-counter></div>
...
</body>
그리고 아래 xclick-counter.html 같이 내 웹 구성 요소의 번호를 가지고 :
<html><body>
<element name="x-click-counter" constructor="CounterComponent" extends="div">
<template>
<button id="button1" on-click="increment()">\\\Increment me</button>
<button id="button2" on-click="decrement()">Decrement me</button>
<span>(click count: {{count}})</span>
</template>
</element>
<!-- more below... -->
</body></html>
myApp.dart의 # container3에있는 웹 구성 요소에서 # button2에 대한 참조를 얻으려면 어떻게해야합니까?
나는 내가 다음과 같이 참조를 얻을 수 있다는 기대하지만 내 참조가 null로 밝혀 :
var reference=document.query('#container1').query('#button2');
대단한 답변을 보내 주셔서 감사합니다. 나는 당신이 제안한 클래스 해결 방법이 내 코드 "reference = document.query ('# container1'). query ('. button2'); ' 여전히 null로 표시됩니다. 결론은 웹 구성 요소를 완전히 캡슐화하지 않고 공용 필드와 동일한 필드와 개인 필드를 필요로한다는 것입니다. –
그림자 DOM에 대한 자세한 내용은 http : http : //www.html5rocks.com/en/tutorials/webcomponents/shadowdom/ 더 많은 컨텍스트를 제공 할 수 있습니다. –
자습서 링크를 제공해 주셔서 감사합니다. 캡슐화 된 요소에 액세스하지 않아도되도록 코드를 업데이트했습니다. –