javascript - Meteor:响应式(Reactive)辅助函数。依赖选择

标签 javascript meteor meteor-blaze

我正在尝试在模板中实现 2 个选择。一个用于从所有类别集合中选择单个类别,另一个用于选择与该特定类别相关的一组技能。所以,后者依赖于前者。 我认为正确的做法是让一个 session 变量在选择更改事件和辅助函数时存储选定的类别 id,该函数 react 性地返回带有该 id 的光标。我的代码看起来像...

<template name="createPost">
    <select id="categories" name="category">
        {{#each categories}}
            <option value="{{_id}}">{{categoryName}}</option>
        {{/each}}
    </select>
    ...
    <select id="skills" name="skills">
        {{#each skills}}
            <option value="{{_id}}">{{skillName}}</option>
        {{/each}}
    </select>
</template>

Template.createPost.helpers
    categories: -> Categories.find()
    getCategory = ->
        Session.get 'selectedCategory'
    Tracker.autorun ->
        skills: ->
            Skills.find {category: getCategory}

Template.createPost.events
    "change #categories": (e) ->
        Session.set 'selectedCategory', e.target.value
    ...........

第一个选择填充了类别。但是,当我选择一个类别时,第二次选择时不会显示相关技能。知道这段代码有什么问题吗,抱歉,我对 meteor 还很陌生。提前致谢。

最佳答案

Template.createPost.helper
  categories: () ->
    Categories.find()
  skills: () ->
    selectedCategory = Session.get 'selectedCategory'
    Skills.find {category: selectedCategory}

Template.createPost.events
  "change #categories": () ->
    Session.set 'selectedCategory', $('#categories').val()

Template.createPost.onRendered () ->
  this.autorun () ->
    c = Categories.find().fetch()[0]
    if c
      Session.set 'selectedCategory', c._id

关于javascript - Meteor:响应式(Reactive)辅助函数。依赖选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32782799/

相关文章:

javascript - 在 Meteor Template.events 中绑定(bind) Semantic-UI 模块事件

javascript - 这是对 javascript 原型(prototype)的错误使用吗?

javascript - 谷歌 AJAX 搜索 API

Meteor Collection - 如何将属性(property)标记为独特

javascript - Meteor:通过点击事件更改变量值

javascript - 使用 radio 启用/禁用 meteor 复选框,使用复选框显示/隐藏

javascript - jQuery 的 HTML 结构附加数组

javascript - 将导航与 Logo 对齐

meteor - 如何使用服务配置 Meteor 包重新定义 OAuth 范围?

html - 如何在 Jade 中使用 Hammer.js Touch Area