如何在Meteor中创建选择控件

时间:2013-09-06 20:06:18

标签: javascript html meteor

是否有规范方法在Meteor中填充选择控件并将控件设置为基础数据中的现有值? 我已经找到了一种方法来填充选择控件中的“选项”。我仍然需要创建选项,以便选择正确的选项以匹配现有数据。

似乎大多数流星的例子都想象出相当简单的形式。我必须处理业务数据。我可能有一个记录,其中有子记录...说联系电子邮件....所以联系电子邮件的每一行都有一个选择“电子邮件类型”。想象一下,有2个联系电子邮件记录......当我显示它们时,我需要为正确的选项设置“选定”值。但我发现这个使用会话变量的唯一例子???存储选定的值...因此可以在布局选择的模板中引用它们。

使用#with似乎只有一个级别...也就是说,我不能#with已经存在#with

1 个答案:

答案 0 :(得分:0)

所选元素需要具有以下属性:

selected="selected"  

(或某些变体 - 刚刚选择的工作正常)

要有条件地包含它,请创建一个模板助手(例如,名为isSelected),它根据您的逻辑返回true / false。你的选项html循环如下所示:

<option value = "{{value}}" {{#if isSelected}} selected="selected" {{/if}}  >
    {{description}}</option>

作为一种改进,而不是帮助程序,您可以向每条记录添加名为isSelected的true / false字段。模板不关心它是字段还是帮助者。

对于“使用#with似乎只有一个级别......也就是说,我不能#with已经存在的#with”

我已经使用对外部的引用来修复内部对象,因此两者都可以在嵌套时访问。例如,要将一个集合中的任何/全部与文档相关联,我准备数据:

Handlebars.registerHelper 'allSureties', (document) ->
  included = document.sureties or []  # the array that tracks ids for surety recs that this doc has
  _.map _sureties, (sure) ->
    sure.owner = document
    sure.isContained = sure._id in included
    sure.vents = "agent:sureties:#{document._id}:#{sure._id}"  # see you can get both IDs this way
    sure

然后我的模板以这种方式使用(注意你可以访问owner._id):

{{#each allSureties this}}
   {{switch value=value 
      fname=nickname 
      group="sureties" 
      on=nickname 
      off=nickname
      object=owner._id
      vents=vents
      _id=_id  }}
 {{/each}}

希望这会有所帮助。