-1
Я пытаюсь создать функцию поиска в реальном времени с метеоритом, похожей на один here.Поиск в режиме реального времени в Метеор
У меня есть простая коллекция Mongo под названием «люди» с 4 полями - имя, пол, адрес электронной почты, телефон.
Вот мой HTML:
<head>
<title>People Search</title>
</head>
<body>
<div class="container">
{{> search}}
</div>
</body>
<template name="search">
<div class="form-group">
<label for="search-query">Search:</label>
<input type="text" class="form-control search-query" id="search-query">
</div>
<h1>People</h1>
{{> people}}
</template>
<template name = "people">
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Gender</th>
<th>Email</th>
<th>Phone</th>
</tr>
</thead>
<tbody>
{{#each searchresults.results}}
<tr>
<td>{{name}}</td>
<td>{{gender}}</td>
<td>{{email}}</td>
<td>{{phone}}</td>
</tr>
{{/each}}
</tbody>
</table>
</template>
Вот мой JS файл:
People = new Mongo.Collection("people");
if (Meteor.isClient) {
Template.search.events({
'keyup input.search-query': function (evt) {
Session.set("search-query", evt.currentTarget.value);
},
})
Template.people.searchResults = function() {
var keyword = Session.get("search-query");
var query = new RegExp(keyword, 'i');
var results = People.find({ $or: [{'name': query},
{'gender': query},
{'email': query},
{'phone': query}] });
return {results: results};
}
}
Что должно произойти на случае изменения текста в текстовом поле, коллекция опрашивается, и результаты, отображаемые в таблице. Событие запускается, но таблица не обновляется.
Благодаря
что не работает? что вы ожидаете увидеть, и что вы видите вместо этого? что сделали, чтобы измерить ваш код и какая часть по-прежнему работает так, как ожидалось? что не выполняется? ... спасибо за показ кода, но, пожалуйста, уточните немного больше о самой проблеме. –