Dieses Live-Snippet erstellt eine Webkomponente, die iron-list
verwendet. Jedes Element in der Liste hat eine Schaltfläche zum Löschen, die beim Klicken das Element aus der Liste entfernt. Wenn ein Gegenstand entfernt wird, werden alle nächsten Gegenstände nach oben verschoben, aber das zuletzt angezeigte Objekt bleibt erhalten und verschwindet nicht wie es sein sollte.Polymer - Wie man einen Gegenstand aus der Eisenliste entfernt?
Nach this stackoverflow, einfach durch Auslösen des Ereignisses resize
auf der Eisen-Liste sollte genug sein. Aber in meinem Schnipsel hilft das nicht. Nether die iron-resize
oder die notifyResize-Funktion von der offiziellen iron-list
documentation.
<script src="https://polygit.org/components/webcomponentsjs/webcomponents-loader.js"></script>
<link rel="import" href="https://polygit.org/components/polymer/polymer-element.html">
<link rel="import" href="https://polygit.org/components/iron-list/iron-list.html">
<link rel="import" href="https://polygit.org/components/paper-button/paper-button.html">
<dom-module id="my-list">
<template>
<iron-list id="list" items="{{items}}">
<template>
<div style="display:flex; justify-content: space-between; align-items: center;">
<div style="margin: 20px; ">
{{item}}
</div>
<paper-button on-tap="_onDeleteClicked"
style="background: red; color: white;">Remove</paper-button>
</div>
</template>
</iron-list>
</template>
<script>
class MyList extends Polymer.Element {
static get is() { return "my-list"; }
// set this element's employees property
constructor() {
super();
this.items = [1,2,3,4];
}
_onDeleteClicked(event){
this.splice("items", event.model.index, 1);
// ---- any resize call doesn't help a thin ---
\t \t this.$.list.fire('iron-resize');
\t \t this.$.list.fire('resize');
\t \t this.$.list.notifyResize();
}
}
customElements.define(MyList.is, MyList);
</script>
</dom-module>
<my-list></my-list>
Warum zur Hölle sollte ich Iron-List sagen, ein entferntes Element zu verstecken ?! Außerdem habe ich mein Problem gelöst. Das liegt daran, dass ich die CSS-Eigenschaft "display" des Wurzelelements der Vorlage geändert habe, die in der Eisenliste enthalten ist. Siehe die [richtige Antwort und ihre Demo hier] (https://stackoverflow.com/a/47305152/4170935) – Yairopro