Javascript Meteor选择框-根据数据上下文将选项标记为选中

Javascript Meteor选择框-根据数据上下文将选项标记为选中,javascript,mongodb,meteor,meteor-blaze,spacebars,Javascript,Mongodb,Meteor,Meteor Blaze,Spacebars,我一直在试图弄清楚如何在选择框中的选项上设置“selected”属性,但今天没有做到。任何帮助都将不胜感激 我正在努力实现的目标: 当用户选择一个选项并点击submit时,数据将保存到一个新的mongo文档中,新条目将显示在屏幕上(此部分有效)。浏览器刷新时,状态将丢失(由于未设置选定属性),选择框将返回到第一个选项。我需要弄清楚如何根据用户在特定文档上保存的值设置所选状态。在此页面上有许多相同的选择框,允许用户为其他条目选择不同的选项 引用(尝试实现时没有运气): <template n

我一直在试图弄清楚如何在选择框中的选项上设置“selected”属性,但今天没有做到。任何帮助都将不胜感激

我正在努力实现的目标: 当用户选择一个选项并点击submit时,数据将保存到一个新的mongo文档中,新条目将显示在屏幕上(此部分有效)。浏览器刷新时,状态将丢失(由于未设置选定属性),选择框将返回到第一个选项。我需要弄清楚如何根据用户在特定文档上保存的值设置所选状态。在此页面上有许多相同的选择框,允许用户为其他条目选择不同的选项

引用(尝试实现时没有运气):

<template name="tEdit">
<div class="form-group">
  <div class="controls">
    {{> fFEdit}}
  </div>
</div>
</template>
<template name="fFEdit">
  <select class="form-control" name="fFSelect">
    {{#each fFSelect}}
      <option value="{{fId}}">{{fF}}</option>
    {{/each}}
  </select>
</template>
  • 选择框模板:

    <template name="tEdit">
    <div class="form-group">
      <div class="controls">
        {{> fFEdit}}
      </div>
    </div>
    </template>
    
    <template name="fFEdit">
      <select class="form-control" name="fFSelect">
        {{#each fFSelect}}
          <option value="{{fId}}">{{fF}}</option>
        {{/each}}
      </select>
    </template>
    

    我不确定这是否是解决我的问题的最佳答案,尽管这是我为将所选属性添加到“保存”选项而想到的。我欢迎其他对此有更好/流星解决方案的人

    当用户单击编辑链接时,我会找到需要更新的输入,并在单击时分配值。理想情况下,我宁愿在pageLoad上已经完成这项工作,尽管我觉得该解决方案可能会影响初始pageLoad时间

    Template.tItem.events({
      'click .edit-t-item': function(e) {
        e.preventDefault();
    
        var $editTWrapper = $(e.currentTarget).next('.edit-t-wrapper');
        $editTWrapper.find('[name=tNEdit]').val(this.tName);
        $editTWrapper.find('[name=fFSelect]').val(this.fFId);
      }
    });
    

    如果您希望状态在浏览器刷新期间保持不变,则应该能够从服务器或类似的服务器获取状态

    您需要的第二件事是获得所选状态的助手。Meteor方便地在
    下提供了数据上下文(对于每个循环,该上下文是一个单独的项)

    这假设您以前使用类似于
    Session.set(“selectedUserId”,user.\u id)
    的内容设置了会话变量

    然后在模板中:

    <template name="userEdit">
      <select class="form-control" name="userSelect">
        {{#each users}}
          <option {{userSelected}}>{{username}}</option>
        {{/each}}
      </select>
    </template>
    
    
    {{{#每个用户}}
    {{username}}
    {{/每个}}
    
    (注意:通过使用元素检查器检查DOM,实际上无法看到所选状态。)