Ich verwende ein Array von Objekten als Daten für meine ractive Komponente (von einer PouchDB erhalten), die innerhalb der ractive für die richtige Ausgabe gefiltert werden muss. Aber alles, was ich probiert habe - auch wenn die Daten, die als "Docs" bezeichnet werden, korrekt geändert werden, bleiben die gefilterten aka berechneten Werte gleich.ractive array ändert sich, aber kein berechneter Wert
ich mit Methode versucht:
new Ractive({
el: '#container',
template: Listing,
magic: true,
modifyArrays: true,
data: {docs},
computed: {
List: function(){
let tempList = [];
for(var i = 0; i < docs.length; i++) {
if (docs[i].specificValue == otherValue) {
let newValue = docs[i];
tempList.push(newValue);
}
}
return tempList;
}
}
});
mit einem Helfer-Objekt
Ractive.defaults.data.helper = function() {
for (var i = 0; i < docs.length; i++) {
if (docs[i].specificValue == otherValue) {
return docs[i].whatever ;
}
}
}
new Ractive({
el: '#container',
template: '{{helper()}}',
magic: true,
modifyArrays: true,
data: {List: docs}
});
und einer Datenfunktion als
in Ractive computed property beschrieben aber nichts daran gearbeitet, die Art und Weise zu erwarten. Wenn ich Dokumente direkt verwende, funktioniert die Bindung wie erwartet.
PS: der Code kann ein bisschen peinlich aussehen, weil ich nur kopiert und vereinfacht.
Können Sie bieten eine einfache und reproduzierbare Demo? – Joseph