2016-05-14 53 views
1

我有一个Meteor任务列表,我希望能够更新某些任务。收藏中有一个“优先”字段。我可以在select标签中设置value属性。我想要的是将与选择标记的值相匹配的选项设置为“选定”。如何根据集合属性设置选项

这里是我的模板代码:

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

});

我能够从助手获取字段的数据,但是对于编码而言是新的,并且正试图找到能够将“低”,“中”或“高”设置为“选中”的解决方案'所以当我去更新任务时它会显示在下拉菜单中。

感谢您提供任何帮助。

回答

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' : '' ; 
    } 
}); 

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

+0

出色地工作。与此同时,我试图通过带有JQuery的Template事件来完成此任务,当我点击该任务时,它在100%的时间内无法正常工作。这很完美。再次感谢! –

相关问题