在Meteor中实时搜索

时间:2015-01-27 17:27:47

标签: html meteor

我尝试使用类似于here的流星创建实时搜索功能。

我有一个简单的Mongo系列名为" people"有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};
  }
}

如果文本框中发生文本更改,则会发生什么,查询集合,结果显示在表格中。 事件被触发,但表格没有更新。

由于

1 个答案:

答案 0 :(得分:1)

更改

{{#each searchresults.results}}

{{#each searchResults.results}}