Ich versuche, eine benutzerdefinierte Sortierung mithilfe einer Vergleichsfunktion aus einem Vorlage Helper in Meteor durchzuführen.Ausnahme im Template Helper: Fehler: Match Fehler
Hier ist meine Vorlage Helfer:
Template.move_list.helpers({
assets() {
return Assets.find({}, { sort: sortFunction });
}
});
Und hier ist die Vergleichsfunktion:
const sortFunction = function (doc1, doc2) {
const barcodes = Session.get('barcodesArray');
if (barcodes.indexOf(doc1.barcode) === -1 || barcodes.indexOf(doc2.barcode) === -1) {
return 0;
}
let last = null;
_.each(barcodes, function (barcode) {
if (barcode === doc1.barcode) last = doc1.barcode;
if (barcode === doc2.barcode) last = doc2.barcode;
});
return last === doc1.barcode ? 1 : -1;
}
Fehler
Wenn die Seite geladen wird, wird der folgende Fehler zurückgegeben:
Exception in template helper: Error: Match error: Failed Match.OneOf, Match.Maybe or Match.Optional validation
Ich habe einen Haltepunkt in Chrom in die sortFunction
, aber die Funktion wurde nie eingegeben und der Haltepunkt nie erreicht.
Natürlich ist der Fehler nicht werfen, wenn ich sort
entfernen.
Referenzen
Diese Funktion ist nicht sehr gut dokumentiert ist, ist jedoch hier die relevant part of the docs:
For local collections you can pass a comparator function which receives two document objects, and returns -1 if the first document comes first in order, 1 if the second document comes first, or 0 if neither document comes before the other. This is a Minimongo extension to MongoDB.
Und die commit by mitar die Funktionalität hinzufügen, mit Beispiel-Code aus dem Test:
var sortFunction = function (doc1, doc2) { return doc2.a - doc1.a; };
c.find({}, {sort: sortFunction})
Kann jemand diesen Fehler verstehen?
Das Problem sollte jetzt behoben werden. – MasterAM
Hattest du die Chance, es auszuprobieren? – MasterAM