2016-12-07 3 views
1

Ich habe ein Element, das mit der folgenden Zeile injiziert und gespeichert wird:Polymer 1.x entfernen Element durch variable Referenz

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

Ich muß jetzt dieses Element zu einem späteren Zeitpunkt in meinem codebase.I entfernen die folgenden 2 Szenarien haben versucht:

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

Und:

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

ich die folgenden Fehler erhalten:

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

Und:

Uncaught TypeError: Cannot read property 'removeChild' of null

Frage: Wie kann ich dieses spezifische Element aus dem Dokument entfernen?

+1

Dieser Code sieht gut aus, können Sie etwas mehr Code zur Verfügung stellen oder ein JS Bin, damit wir sehen können, was passiert? – JohnRiv

+1

Wahrscheinlich haben Sie spezifische Situation, aber nur um zu erwähnen, dass in Polymer empfohlene Weise der Manipulation des DOM ist, indem Sie die Daten manipulieren: http://StackOverflow.com/a/38950936/986212 –

Antwort

0

Nach dem Debugging habe ich festgestellt, dass this.$$('#inject-point').appendChild(promo); nur das neu erstellte DOM-Objekt zurückgibt, aber Referenzen auf seine Position im DOM nicht beibehalten.

Das übergeordnete Objekt wird nicht im Objekt aufgezeichnet.

um das Problem zu umgehen ich das neue DOM-Objekt in eine Eigenschaft gespeichert, bevor ich sie in das DOM injizieren und es dann wie so später entfernen:

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