2016-05-14 9 views
1

メテオには、特定のタスクを更新できるタスクリストがあります。コレクションには「優先度」フィールドがあります。私はselectタグのvalueプロパティを設定することができます。私が望むのは、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」に設定できる解決策を探しています私がタスクを更新するときにドロップダウンに表示されます。

ご協力いただきありがとうございます。

答えて

2

あなたが言ったように、ドキュメントのプロパティは、どのアイテムがデフォルトでビューで選択されるかを決定します。別のヘルパーを設定して調整を行うことができます。

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

これは1つの解決策です。この問題はこれ以上の解決策があるかもしれません。必要に応じてcodebseを変更することは大歓迎です。

+0

素晴らしく働いた。私は、タスクをクリックしたときに、JQueryを使ってTemplateイベントを介してこれを行うことを試みましたが、100%の時間は動作しませんでした。これは完璧でした。再度、感謝します! –

関連する問題