2015-01-27 7 views
-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}; 
    } 
} 

Что должно произойти на случае изменения текста в текстовом поле, коллекция опрашивается, и результаты, отображаемые в таблице. Событие запускается, но таблица не обновляется.

Благодаря

+0

что не работает? что вы ожидаете увидеть, и что вы видите вместо этого? что сделали, чтобы измерить ваш код и какая часть по-прежнему работает так, как ожидалось? что не выполняется? ... спасибо за показ кода, но, пожалуйста, уточните немного больше о самой проблеме. –

ответ

1

изменение

{{#each searchresults.results}} 

в

{{#each searchResults.results}} 
Смежные вопросы