Я пытаюсь выполнить пользовательский сортировку, используя функцию компаратора из вспомогательного элемента шаблона в Meteor.Исключение в шаблоне helper: Ошибка: ошибка совпадения
Вот мой шаблон помощник:
Template.move_list.helpers({
assets() {
return Assets.find({}, { sort: sortFunction });
}
});
А вот функция сравнения:
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;
}
Ошибка
При загрузке страницы, возвращается следующее сообщение об ошибке:
Exception in template helper: Error: Match error: Failed Match.OneOf, Match.Maybe or Match.Optional validation
Я поставил точку останова в хроме в sortFunction
, однако функция никогда не вводилась, и точка останова не достигла.
Конечно, ошибка не бросается, когда я удаляю sort
.
Ссылки
Эта функция не очень хорошо документированы, однако здесь есть 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.
И commit by mitar добавляя функциональность, с примерами кода из теста:
var sortFunction = function (doc1, doc2) { return doc2.a - doc1.a; };
c.find({}, {sort: sortFunction})
Может ли кто-нибудь понять эту ошибку?
Теперь проблема должна быть исправлена. – MasterAM
У вас была возможность попробовать? – MasterAM