【问题标题】:Live search in MeteorMeteor 中的实时搜索
【发布时间】:2015-01-28 19:34:29
【问题描述】:

我正在尝试使用流星创建一个实时搜索功能,类似于here

我有一个名为“people”的简单 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};
  }
}

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

谢谢

【问题讨论】:

  • 什么不起作用?你期望看到什么发生,你看到了什么?为检测您的代码做了哪些工作,哪个部分仍按预期工作?什么不会被执行? ...感谢您显示代码,但请进一步澄清问题本身。

标签: html meteor


【解决方案1】:

改变

{{#each searchresults.results}}

{{#each searchResults.results}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2019-02-09
    • 2015-06-05
    • 2013-04-15
    • 2015-03-20
    • 2013-06-14
    相关资源
    最近更新 更多