如何根据集合属性设置选项

时间:2016-05-14 12:37:55

标签: meteor meteor-blaze

我在Meteor中有一个任务列表,我希望能够更新某些任务。有一个优先事项'集合中的字段。我可以在select标签中设置value属性。我想要的是设置为选择'与select标记的值匹配的选项。

以下是模板中的代码:

<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;
    }
}

});

我能够从帮助程序获取字段的数据,但我是编码的新手,我正在尝试找到一个解决方案,以便能够设置&#34;低&#34;,&#34;中&#34 ;或者&#34;高&#34;选择&#39;所以当我去更新任务时它将显示在下拉列表中。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

正如您所说,文档的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' : '' ;
    }
});

这是一种可能的解决方案。这个问题可能比这更好。欢迎您根据需要修改代码。