如何根据 collection 属性 将选项设置为选中

How to set option to selected based on collection property

我在 Meteor 中有一个任务列表,我希望能够在其中更新某些任务。 collection 中有一个 'priority' 字段。我可以在 select 标签中设置值 属性。我想要的是将与 select 标签的值匹配的选项设置为 'selected' 。

这是我在模板中的代码:

<select value="{{priority}}"  id="priorityList">
      <option value="Low">Low</
      <option value="Medium" >Medium</option>
      <option value="High">High</option>
</select>

这是助手中的代码:

Template.add_task.helpers({
  update: function() {
    if(Session.get('id')) {
        var id = Session.get('id');
        var task = Items.find({_id: id});
        console.log(task);
        return task;
    }
}

});

我能够从助手那里获取字段的数据,但我是编码的新手,我正在尝试找到一个能够设置 "Low"、"Medium" 或 "High" 到 'selected' 所以当我去更新任务时它会显示在下拉列表中。

感谢您提供的任何帮助。

如您所说,文档的 priority 属性 将决定默认情况下在视图中选择哪个项目。您可以设置另一个助手来进行调整。

<option value="Low" {{ isSelected "Low"}} >Low</option>
<option value="Medium" {{ isSelected "Medium"}} >Medium</option>
<option value="High" {{ isSelected "High"}} >High</option>

Template.add_task.helpers({
    update: function(){//previous code},
    isSelected: function(value){
        var taskPriority = Items.findOne({_id: Session.get('id')}).priority;
        return (taskPriority === value) ? 'selected' : '' ;
    }
});

这是一种可能的解决方案。这个问题可能有比这更好的解决办法。欢迎大家根据需要修改codebse