1
讓我們回到我的問題Query elements inside <content> of a custom element更改<template>(TemplateElement)編程
現在我想渲染開始前以編程方式更改嵌套自定義元素的模板。可能嗎?
<polymer-element name="my-element">
<template>
<div>
<template id="tml" repeat="{{items}}">
Hi, {{}}!
</template>
</div>
</template>
<script type="application/dart" src="my_element.dart"></script>
</polymer-element>
<polymer-element name="my-decorator">
<template>
<div>
<div>Decorator</div>
<content>
<!-- my-element will be here-->
</content>
</div>
</template>
<script type="application/dart" src="my_decorator.dart"></script>
</polymer-element>
index.html中:
<my-decorator>
<my-element></my-element>
</my-decorator>
在my_decorator.dart:
@override
void enteredView() {
super.enteredView();
ContentElement content = shadowRoot.querySelector('content');
MyElement elm = content.getDistributedNodes().firstWhere((e) => e is MyElement);
TemplateElement elm = elm.shadowRoot.querySelector("#tml");
// TODO
// change template here!
}
原因是在<模板ID = 「TML」 重複= 「{{物品}}」>。集合{{items}}是ObservableList,可以更改。所以我需要更改此列表中所有新項目的視圖。更改模板會更簡單。 – Roman
抱歉,我沒要改變內''。用'templateInstance'你可以得到外層模板。但我仍不明白爲什麼要更改模板。這不是什麼「重複」的目的? –