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