流星:反应辅助功能。依赖选择

时间:2015-09-25 13:00:25

标签: javascript meteor meteor-blaze

我正在尝试在模板中实现2个选择。一个用于从所有类别集合中选择单个类别,另一个用于选择与该特定类别相关的一组技能。所以,后者依赖于第一个。 我认为这样做的正确方法是使用一个会话变量来存储选择的更改事件和辅助函数,并选择更改事件和辅助函数。我的代码看起来像......

<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
    ...........

首先选择填充类别。但是,当我选择一个类别时,相关技能不会显示在第二个选择中。不知道这个代码有什么问题,对不起,我对流星来说还是个新手。提前谢谢。

1 个答案:

答案 0 :(得分:1)

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