2016-05-14 27 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%的時間內無法正常工作。這很完美。再次感謝! –

相關問題