Я хочу добавить содержимое шаблона, если требуется, и удалить его, когда он не требуется. Мой код основан на дом-если реализации полимера
Это код для добавления содержимого шаблона
if (!this.ctor) {
this.templatize(this);
}
if (parentNode) {
const parent = Polymer.dom(parentNode);
if (!this._instance) {
this._instance = this.stamp();
const targetNode = parent.firstElementChild;
const newNode = this._instance.root;
parent.insertBefore(newNode, targetNode);
} else {
const children = this._instance._children;
if (children && children.length) {
const lastChild = Polymer.dom(this).previousSibling;
if (lastChild !== children[children.length - 1]) {
for (let i = 0, node; i < children.length && (node = children[i]); i++) {
parent.insertBefore(node, this);
}
}
}
}
}
и это код для удаления содержимого шаблона:
if (this._instance) {
const children = this._instance._children;
if (children && children.length) {
const parent = Polymer.dom(Polymer.dom(children[0]).parentNode);
for (let i = 0, n; i < children.length && (n = children[i]); i++) {
parent.removeChild(n);
}
}
if(this.restamp) {
this._instance = null;
}
}
Так что, если я установлю для атрибута restamp значение true, все будет хорошо. Но если я установил значение false, некоторое содержимое не будет отображаться.
Содержимое шаблона dom-repeat не будет вставлено в код выше
parent.insertBefore(node, this);
Поскольку узел содержит только # document-фрагментов, но не содержимое, которое вставляется с помощью dom-repeat.
Я пытался найти правильный контент, но мне не удалось. Есть ли возможность вставить правильный контент, даже если он содержит dom-repeat, dom-if и т. Д .?
Спасибо