Мне нужно выполнить поиск в текстовом поле (mongodb). Критерии поиска/фильтр в коллекции могут быть любой подстрокой укуса в поле. Я сохраняю фильтр (ввод) в переменной сеанса. Кажется, что фильтр работает в первый раз после того, как SessionVariable имеет значение NULL. После первого поиска я не получаю результата при вводе нового значения (extisting!). В случае, если я очистил фильтр, нажмите enter и верните фильтр, чтобы получить результат. Я предполагаю, что мой код субоптимален. Может кто-то может рассмотреть и, возможно, сделать предложение?Поиск не очищает фильтр
Вот что у меня есть:
HTML:
<input class="medinput" maxlength="80" type="text" name="nameSearchBar" id="nameSearchBar" value="{{searchText}}">
JavaScript:
Session.setDefault('searchText', null);
Template.questions.helpers({
questions:function(){
if ((Session.get('searchText') === null) || (Session.get('searchText') === '')) {
Session.get('searchText',null);
return Questions.find({archived:{$ne:true}});
} else {
var searchText = Session.get('searchText');
Session.get('searchText',null);
return Questions.find({ $and: [ { archived: { $ne: true } }, {note:{$regex: (".*"+searchText+".*") } } ] })
}
},
searchText:function(){
return Session.get('searchText');
}
})
Template.questions.events({
"change #nameSearchBar":function(event){;
searchText = event.target.value;
Session.set('searchText', searchText);
}
})
Вопросы:
- почему мне нужно сначала "войти" пустая строка, чтобы получить действительный результат
- это хорошая процедура? Не попадает ли на работу против реактивного подхода ? Я думаю, что после входа в полную страницу возникает недовольство?
- Было бы лучше проверить «клавиатуру» для ASCII 27 и 13?
- Мне кажется, что регулярное выражение работает, есть ли проблемы? Мне нравится находить любую подстроку типированного фильтра, также, когда фильтр имеет пробел.
- Это полный текстовый поиск, нужно ли мне что-то задавать на стороне монгодба?
- Открытый вопрос: являются уже prebuild implementiations - мне не нужно изобретать велосипед ...