javascript - 基于 meteor 中选择下拉框的过滤器集合

标签 javascript meteor meteor-helper

我正在尝试根据从选择下拉列表中选择的值来过滤我的收藏。我已经尝试过解决方案 herehere它对我来说还不够用。下面是我要过滤的模板。选择下拉列表在另一个模板中 categoryFilter我在这里使用 {{> categoryFilter}} 调用它过滤 {{#each car}} 下的集合列表堵塞。我在架构中使用的字段是 ccategory我想过滤

<template name="carsList">
  <div class="col s12 filter-holder">
        <div class="col m4 s4 filter-box">
          {{> categoryFilter}}
        </div>
 </div>

<div class="col s12">
 <ul class="collection" id="listings">
{{#each cars}}
<li>
  {{> carItem}}
</li>
{{/each}}
</ul>
</div>
</template>

这是我现有的调用所有汽车的助手

Template.carsList.helpers ({
'allCars': function() {
  return Cars.find();
},
});

这就是我的事件的样子。 var pageSession=ReactiveDict();

 Template.carsList.events({
  "click .categoryselection": function(e, t){
 var text = $(e.target).text();
  pageSession.set("selectedCategory",text);
 }
 });

我正在使用 ReactiveDict()这个过滤的包。我现在做吗?我如何过滤值并在 <ul> 上调用它们列表和筛选 <li>值(value)观。请帮助我

最佳答案

因为您一次只存储一个值(所选类别),所以在这种情况下没有必要使用 ReactiveDict,对吗?如果是这样,您可以使用 ReactiveVar 来完成相反:

 Template.carsList.onCreated(function () {
   this.selectedCategory = new ReactiveVar();
 });

Template.carsList.helpers ({
'allJobs': function() {
  var category = Template.instance().selectedCategory.get();
  return Cars.find(category ? {ccategory: category} : {});
},
});

 Template.carsList.events({
  "click .categoryselection": function(e, t){
 var text = $(e.target).text();
  t.selectedCategory.set(text);
 }
 });

如果您仍想对多个过滤器值(例如 ccategorycity)使用 ReactiveDict,您可以使用:

Template.carsList.helpers ({
'allJobs': function() {
  var filter = {};
  var category = pageSession.get("selectedCategory");
  var city = pageSession.get("selectedCity");
  if (city)
    filter.city = city;
  if (category)
    filter.ccategory = category;
  return Cars.find(filter);
},
});

 Template.carsList.events({
  "click .categoryselection": function(e, t){
 var text = $(e.target).text();
  pageSession.set("selectedCategory",text);
 },
  "click .cityselection": function(e, t){
 var text = $(e.target).text();
  pageSession.set("selectedCity",text);
 }
 });

关于javascript - 基于 meteor 中选择下拉框的过滤器集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30732101/

相关文章:

javascript - 如何将字符串转换为日期格式

javascript - 如何知道哪个域使用 JS 向我的 C# 操作发送请求

javascript - Bootstrap 中的面板滚动

javascript - meteor : Clear a field

javascript - 如何使我的菜单和下拉菜单居中

javascript - 无法部署待办事项;无法删除容器 (todos-frontend)

meteor - Meteor.js 中的操作转换?

javascript - Meteor 用户更新时显示提醒

javascript - 模板助手中出现异常 : quickFormContext with aldeed:autoform

javascript - 在helper上调用收集数据