Ich verwende ember-drag-drop, um eine sortierbare Liste zu implementieren. Dies funktionierte gut, bis ich einen Textfilter auf der Liste implementieren musste.Wie verwendet man eine gefilterte berechnete Eigenschaft mit sortierbaren Objekten von ember-drag-drop?
Die filteredItems ist eine berechnete Eigenschaft, die die ursprüngliche Liste basierend auf der Texteingabe eines Benutzers filtert.
filteredItems: computed('items', 'term', function() {
let term = this.get('term');
let items = this.get('items');
if (term.length > 0) {
return items.filter(item => item.conditions.some(cond => cond.field.toLowerCase().indexOf(term) > -1 || (cond.term && cond.term.toLowerCase().indexOf(term) > -1)));
} else {
return items;
}
}),
Das Problem ist, dass eine berechnete nicht (normalerweise) zurückgeschrieben werden kann. Das eigentliche Ziehen und Ablegen funktioniert (die Elemente werden in einer anderen Reihenfolge im Browser angezeigt), die ursprüngliche Datenreihenfolge der items
ändert sich jedoch nicht.
Wie kann ich immer noch die Sortierung des ursprünglichen Datensatzes zulassen und trotzdem filtern?
In Ihrem zweiten Codeblock sollte der Name der berechneten Eigenschaft nicht 'filteredItems' statt 'filteredRules' –
@ AhmetEmreKılınç Ja, das ist ein Tippfehler bei der Anonymisierung meines Codes. – Soviut
hast du meine Antwort überprüft? –