У меня есть следующая проблема: у меня есть интерфейс, в котором пользователь может фильтровать материал на основе нескольких входов. Есть 5 входов. Когда ввод заполняется, я хочу добавить его значение к помощнику, возвращающему коллекцию. Проблема, которую я не могу решить, заключается в том, как это сделать динамически. Иногда пользователь может заполнить один вход, иногда три, иногда все 5. В рамках метода находки() можно только записать синтаксис метеора:Назначить селекторы mongo в find() динамически
mongoSelector: fieldName,
Это означает, что вы можете только жёстко~d материал в находке(). Но просто добавление всех 5 селекторов не работает, поскольку, если одно из значений пусто, поиск ищет пустую строку вместо ничего.
Я думал о выполнении условных обозначений или переменных, но оба они не работают внутри find из-за требуемого синтаксиса. Что я могу сделать, чтобы решить эту проблему?
var visitorName;
var visitorAge;
Session.set('visitorName', visitorName);
Session.set('visitorAge', visitorAgee);
Template.web.helpers({
visitors: function() {
return Visitors.find({ visitor_name: Session.get('visitorName'), visitor_age: Session.get('visitorAge') });
}
});
Template.web.events({
"change #visitor_name": function (event, template) {
visitorName = $(event.currentTarget).val();
}
});
Template.web.events({
"click #reset_filter": function (event, template) {
return Visitors.find();
$(input).val('');
}
});
Это, вероятно, лучше всего ответить с полным примером. Каковы типы ввода (текст, выбор и т. Д.)? Когда нужно найти обновление (отправить, настроить, изменить)? –
http://jsfiddle.net/4zmt71py/ Вот пример. В этом примере он жестко закодирован и работает только при определении всех трех входов. То, что мне нужно достичь, - установить find() в зависимости от того, сколько входов определено. В конце концов я хочу сбросить его снова нажатием кнопки. Одним из вариантов является, например, проверка, определена ли сессия, а если нет, не включайте соответствующую часть. Но это, как и все остальное, о чем я думал, не работает из-за ограничения синтаксиса. Если условие: возвращение Visitors.find ({ если (Session.get ('visitorName') = не определено) {visitor_name: Session.get ('visitorName')}} ) –
@AndreasGalster Пожалуйста, смотрите ниже ответ , – BatScream