【问题标题】:Meteor: reactive helper function. Dependent selectMeteor:反应式辅助功能。依赖选择
【发布时间】:2015-12-23 07:44:43
【问题描述】:

我正在尝试在模板中实现 2 个选择。一种是从所有类别集合中选择一个类别,另一种是选择与该特定类别相关的一组技能。所以,后者依赖于前者。 我认为正确的做法是在选择更改事件和辅助函数时使用会话变量来存储选定的类别 ID,该函数会响应地返回具有该 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
    ...........

第一个选择包含类别。但是,当我选择一个类别时,第二个选择中没有显示相关技能。知道这段代码有什么问题,对不起,我对流星还是很陌生。提前致谢。

【问题讨论】:

  • 你试过没有tracker.autorun吗?
  • 是的,我在没有 tracker.autorun 的情况下尝试过。我还尝试将第二个选择放在单独的模板和它自己的助手中,仍然没有运气
  • 所以为了澄清,是没有技能出现还是都出现了?您可以发布示例类别和技能吗?还有,选择类别后控制台中Skills.find({})的结果是什么?
  • 没有技能出现。我有一个名为 NodeJS 的类别和 2 个技能 MeteorJS 和 HTML5,每个类别都有一个 ID 为 NodeJS 的类别字段。
  • 您使用的是insecure 包吗?如果不是,您的订阅/出版物是什么样的?

标签: javascript meteor meteor-blaze


【解决方案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

【讨论】:

  • 谢谢,我知道了,但是第二个选择没有立即更新它的选项,我必须重新加载它。我会将选择放在单独的模板中,看看会发生什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 2019-01-23
  • 2016-06-03
相关资源
最近更新 更多