【问题标题】:Meteor reactive search bar with all results when unfocused未聚焦时所有结果的流星反应式搜索栏
【发布时间】:2015-08-18 07:18:35
【问题描述】:


我正在尝试在我的流星项目中实现一个简单的搜索选项,但我从来没有任何使用搜索栏的经验。我的模板当前列出了集合中的所有元素,我希望我的搜索栏以反应方式聚合这些结果。

我已经能够使用简易搜索包获得该结果,但这是我的问题开始的地方。
使用简易搜索,除非我开始在搜索框中输入,否则我无法显示任何结果。外部包的问题是它们真的很难编辑,我不知道如何添加这样的选项或自定义搜索栏。

我已经尝试按照搜索源包进行操作,但该教程针对特定包搜索进行了说明,我不知道如何将其调整为我的项目。

所以再一次。我想在我的列表中添加一个搜索栏,但如果我不使用它,我希望列出所有元素,如果没有任何匹配项,则不列出。

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

    查看this meteorpad我整理的。完整代码如下:

    client/main.html:

    <body>
      {{> main}}
    </body>
    
    <template name="main">
      <div><input id="search" placeholder="Search"></div>
    
      {{> foodList}}
    </template>
    
    <template name="foodList">
      <ul>
        {{#each foods}}
          <li>{{name}}</li>  
        {{/each}}
      </ul>
    </template>
    

    lib/collections.js:

    Foods = new Mongo.Collection('foods');
    

    客户端/app.js:

    Template.foodList.helpers({
      foods: function () {
        var regexp = new RegExp(Session.get('search/keyword'), 'i');
        return Foods.find({name: regexp});
      }
    });
    
    Template.main.events({
      'keyup #search': function(event) {
        Session.set('search/keyword', event.target.value);
      }
    });
    

    服务器/app.js:

    Meteor.startup(function() {
      if (Foods.find().count() === 0) {
        Foods.insert({name: 'Blueberries'});
        Foods.insert({name: 'Strawberries'});
        Foods.insert({name: 'Steak'});
        Foods.insert({name: 'Eggs'});
      }
    });
    

    【讨论】:

    • 谢谢,帮了大忙!看来流星垫坏了..
    • 流星垫不存在了?
    猜你喜欢
    • 1970-01-01
    • 2023-04-10
    • 2016-05-12
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    相关资源
    最近更新 更多