2016-12-07 3 views
1

У меня есть элемент, который впрыскивается и хранимый с помощью следующей строки:Polymer 1.x Удалить элемент по переменной Reference

this._lastPromo = this.$$('#inject-point').appendChild(promo); 

Теперь мне нужно, чтобы удалить этот элемент в более позднее время в моем codebase.I испробованы следующие 2 сценария:

this.$$('#inject-point').removeChild(this._lastPromo); 

И:

this._lastPromo.parentNode.removeChild(this._lastPromo); 

я получаю следующие ошибки:

Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

И:

Uncaught TypeError: Cannot read property 'removeChild' of null

Вопрос: Как я могу удалить этот конкретный элемент из документа?

+1

Этот код выглядит хорошо, вы можете предоставить больше код или JS Bin, чтобы мы могли видеть, что происходит? – JohnRiv

+1

Возможно, у вас есть конкретная ситуация, но просто упомянем, что в Polymer рекомендуется использовать способ управления DOM, манипулируя данными: http://stackoverflow.com/a/38950936/986212 –

ответ

0

После отладки я обнаружил, что this.$$('#inject-point').appendChild(promo); возвращает только вновь созданный объект DOM, но не сохраняет ссылки на его позицию в DOM.

Родитель не зарегистрирован в объекте.

Чтобы обойти эту проблему, я хранил новый DOM объект в собственность, прежде чем я закачивать его в DOM, а потом удалить его следующим образом:

Polymer.dom(this._lastPromoEl).parentNode.removeChild(this._lastPromoEl); 

 Смежные вопросы

  • Нет связанных вопросов^_^