Печать шаблона с помощью Polymer Templatizer - PullRequest
0 голосов
/ 01 апреля 2019

Я хочу добавить содержимое шаблона, если требуется, и удалить его, когда он не требуется. Мой код основан на дом-если реализации полимера

Это код для добавления содержимого шаблона

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 и т. Д .?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...