将集合中的字段加载到选择字段中并根据所选值对其进行过滤

2023-12-25

基本上我有两个相关的问题,但我会用数字将它们分开 1)我试图将单个字段加载到集合中的选择下拉框中,但它填充了从下面的列表中收集的所有重复值,而不是它自己的帮助器。

<template name="carsList">

{{> categoryFilter}}

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

类别模板是

<template name="categoryFilter">
 <div class="input-field">
 <select>
   <option value="" disabled selected>Choose your option</option>
    {{#each companyCategories}}
     {{> companyCategory}}
    {{/each}}
 </select>
 <label>Select Category</label>
</div>
</template>

<template name="companyCategory">
  <option>{{ccategory}}</option>
</template>

categoryFilter 保存着我使用下面的帮助器的下拉模板

Template.categoryFilter.helpers({
companyCategories: function(){
return Cars.find();
}
});

它不是从自己的帮助程序中填充数据,而是加载来自其下方“列表”的数据并重复数据。

选择框中结果的图像 http://www.tiikoni.com/tis/view/?id=cd55053

2)我还想根据选择下拉框中选择的值过滤列表(当然是反应性的)

请帮忙

EDIT

这就是我的模板现在的样子

<template name="categoryFilter">
 <div class="input-field">
  <select>
   <option value="" disabled selected>Choose your option</option>
    {{#each companyCategories}}
      {{> companyCategory}}
    {{/each}}
   </select>
 <label>Select Category</label>
 </div>
</template>

<template name="companyCategory">
 <option>{{justCategory}}</option>
</template>

这是我将如何进行的。首先,下拉菜单:您应该使用光标而不是文档数组。所以你的帮手应该是:

Template.categoryFilter.helpers({
    companyCategories: function(){
       return Jobs.find();
    }
});

和你的categoryFilter模板 HTML 可能是这样的

<template name="categoryFilter">
<div class="dropdown">
  <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
    {{selectedCategory}} <!-- refer to an helper which returns the reactive variable--> 
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
  {{#each companyCategories}}
    <li role="presentation"><a role="menuitem" class="categoryItem" tabindex="-1" href="#">{{yourCatergoryNameField}}</a></li>
  {{/each}}
  </ul>
</div>
</template>

然后,您可以创建一个事件来记录单击时在下拉列表中选择的当前类别

    "click .categoryItem": function(e, t) {
        var text = $(e.target).text()
        Session.set("selectedCategory", text)
    },

现在,您可以使用以下方式过滤您的汽车selectedCategory反应变量。为此,你需要另一个帮手。例如:

Template.carList.helpers({
    carListingByCategory: function(){
       var filter = Session.get ("selectedCategory");
       return Car.find(category:filter)
    }
});

这应该够了吧。我从不使用 Session,所以它可能不会像我想象的那样工作。如果不起作用,请使用反应字典 https://atmospherejs.com/meteor/reactive-dict反而。基本上,你添加var pageSession = new ReactiveDict();在你的文档的开头,你可以替换Session with pageSession在我的代码中。

EDIT

好吧,让我们尝试一下下划线。基于此answer https://stackoverflow.com/a/23255779/3793161,您可以执行以下操作来返回 allJobs 的每个项目的所有不同类别:

Template.categoryFilter.helpers({
    companyCategories: _.uniq(Collection.find({}, {
        sort: {myField: 1}, fields: {myField: true}
    }).fetch().map(function(x) {
        return x.myField;
    }), true);
    }
});

where myfield是您的类别数组字段。

EDIT 2

尝试更改您的 html 并替换{{justCategory}} with {{this}}:

<template name="categoryFilter">
 <div class="input-field">
  <select>
   <option value="" disabled selected>Choose your option</option>
    {{#each companyCategories}}
      {{> companyCategory}}
    {{/each}}
   </select>
 <label>Select Category</label>
 </div>
</template>

<template name="companyCategory">
 <option>{{this}}</option>
</template>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将集合中的字段加载到选择字段中并根据所选值对其进行过滤 的相关文章

随机推荐

  • C++ 检查项目是否在数组中[重复]

    这个问题在这里已经有答案了 在 C 中 我有一个数组 我试图检查数组中是否有某个元素 这是我的数组 string choices 3 a b c 我想要它 以便如果用户输入存在于数组中 它会打印出 true 因此如果用户输入 b 那么它将打
  • python随机鼠标移动

    我想在指定的矩形区域 坐标x1 y1 x2 y2 x3 y3 x4 y4 进行随机鼠标移动 运动应该是平滑的 随机的 而不仅仅是直线 在指定的时间内随机上 下 左 右 等 您能给我一个可以学习的例子吗 非常感谢 此代码仅适用于 Window
  • 按大小扭曲日志旋转/对文件总数有上限?

    我有一个扭曲的服务器 它生成日志文件并根据大小轮换它们 如果特定文件的文件大小超过 1MB 则会创建新的日志文件 然而 运行几天后 日志文件开始填满我的硬盘 有没有办法对日志轮换进行总体限制 该限制可能基于总大小 例如仅 200GB 的日志
  • 将 Visual Studio C++ 移植到 Linux

    我们有一个不是很复杂但是big 即大量文件 Visual Studio C Win32 控制台在 VS2010 中以 C 0x 标准编写 它不使用任何非标准代码或任何东西 希望如此 我现在想把它移植到 Linux 上 哪种方法是最快的方法
  • 如何让 Angular 5 等待 Injectable 构造函数中使用的 Promise 在构造依赖项或 ngOnInit 之前解析?

    我的 Angular 5 项目中有一个服务 它保存一些配置状态 Injectable export class FooService isIncognito boolean null constructor I want Angular t
  • 代码到接口原则是否适用于实体类?

    我正在尝试在项目中遵循代码到界面 我应该首先创建一个接口 然后为实体类实现该接口吗 我认为这可能使接口优先的方法走得太远 应该忽略实体 这就是我的意思 public interface Address public String getSt
  • Swift 中的类型强制问题

    编辑 这在 Swift 3 中工作得非常好 我们现在都应该使用它了 如果我有两个协议 X and Y where Y实施X 为什么我不能分配一个数组Y到一个类型的变量 X 更奇怪的是 我可以将它一一转换为 X 数组 并且编译得很好 prot
  • R 中不平衡面板上的简单移动平均线

    我正在处理不平衡 间隔不规则的横截面时间序列 我的目标是获得 数量 向量的滞后移动平均向量 并按 主题 分段 换句话说 假设对Subject 1观察到以下数量 1 2 3 4 5 我首先需要将其滞后 1 得到 NA 1 2 3 4 然后我需
  • Python colorama 不适用于输入?

    今天终于让 colorama 工作了 在打印字符串时它工作得很好 但是当我尝试在输入中使用 colorama 时 我遇到了每个人似乎都会遇到的常见错误 这是我的代码 launch input Fore GREEN Launch attack
  • Android 上没有 ToolBar 可以制作视差效果吗? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我花了很长时间 也在寻找第三方库 来制作某种 视差 但没有Toolbar 我所看到的只是与Toolbar 但这不符合我的最佳利益 因为我删除
  • 有效 JSON 是否为 null(4 字节,没有其他内容)

    今日热议 是文本流null有效的 JSON 根据http www ietf org rfc rfc4627 txt number 4627 http www ietf org rfc rfc4627 txt number 4627 2 JS
  • 在 Prisma 中创建或更新一对多关系

    我正在尝试更新 Prisma 中的一对多关系 我的架构看起来像这样 model A User id Int id username String age Int bio String db VarChar 1000 createdOn Da
  • Identity Server 4 (2.0) 不读取 Asp.Net Core Identity cookie

    我正在尝试使用Asp Net 身份核心 https learn microsoft com en us aspnet core security authentication identity tabs visual studio 2Cas
  • Google Cloud Dataflow 可以在没有外部 IP 地址的情况下运行吗?

    在扩大 Google Cloud Dataflow 的使用范围时 我们注意到 我们将开始耗尽正在使用的 IP 地址的配额 我们知道请求增加配额是一种选择 并且已经这样做并已获得 CPU 的批准 但想知道是否 或将要 可以在没有外部 IP 地
  • 将 Backbone 模型与 AngularJS 结合使用

    最近我在思考 Backbone js 和 AngularJS 之间的异同 我发现 Backbone 中真正方便的是 Backbone Models 和 Backbone Collections 您只需设置 urlRoot 然后通过 Ajax
  • Github CLI 添加另一个遥控器并使用它

    我在 Github CLI 第一个版本发布后就开始使用它 这是一个很棒的工具 我一直在从事一个项目 该项目需要远程位于不同的地方 例如在两个存储库中 我可以添加另一个遥控器来推送更改 但 gh 只能控制第一个遥控器 举个例子 gh pr s
  • 基于 INF 的打印机驱动程序的 WIX 安装程序

    我正在尝试使用 WIX 制作打印机驱动程序的安装程序 I have 一些DLL cat 文件 gdp 文件 inf 文件 我正在考虑使用INF来部署驱动程序 但不知道如何实现 I sow 这个问题 https stackoverflow c
  • 避免 ORA-00955: 名称已被现有对象使用

    我正在 sql 文件中创建如下表 每次有新文件要处理时都会调用该表 因此 每当有新文件出现时 我都会删除该表并再次创建并加载 当我从 shell 脚本调用此表时 该表被删除并成功创建 但与此同时我收到如下错误 知道如何避免这种情况 ERRO
  • 函数中的多个等待

    我在 JS 承诺方面遇到了一些困难 我正在使用一个库从 Spotify 中提取返回承诺的数据 在我的主函数中 我可以使用await从响应数据构建一个对象并将其推送到一个数组 称为节点 var nodes main async functio
  • 将集合中的字段加载到选择字段中并根据所选值对其进行过滤

    基本上我有两个相关的问题 但我会用数字将它们分开 1 我试图将单个字段加载到集合中的选择下拉框中 但它填充了从下面的列表中收集的所有重复值 而不是它自己的帮助器