2016-05-14 1 views
1

Ich habe eine Aufgabenliste in Meteor, in der ich bestimmte Aufgaben aktualisieren kann. Es gibt ein Prioritätsfeld in der Sammlung. Ich bin in der Lage, die Value-Eigenschaft im Select-Tag zu setzen. Was ich möchte, ist als 'ausgewählt' die Option, die den Wert des ausgewählten Tags entspricht.Wie man die Option basierend auf der Sammeleigenschaft ausgewählt wird

Hier ist mein Code in der Vorlage:

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

Dies ist Code-Code in dem Helfer:

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

});

Ich bin in der Lage, die Daten für die Felder vom Helfer zu bekommen, bin aber neu im Coding und versuche eine Lösung zu finden, um entweder "Niedrig", "Mittel" oder "Hoch" auf "ausgewählt" zu setzen 'So wird es auf dem Dropdown angezeigt, wenn ich gehe, um die Aufgabe zu aktualisieren.

Danke für jede Hilfe, die zur Verfügung gestellt werden kann.

Antwort

2

Wie Sie bereits gesagt haben, entscheidet die Eigenschaft eines Dokuments, welches Element in der Ansicht standardmäßig ausgewählt wird. Sie können einen anderen Helfer einstellen, um die Änderungen vorzunehmen.

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

Dies ist eine mögliche Lösung. Dieses Problem kann eine bessere Lösung als das haben. Sie können den CodeBase gerne Ihren Bedürfnissen anpassen.

+0

Arbeitete brillant. Ich hatte versucht, dies in der Zwischenzeit über ein Template-Event mit JQuery zu tun, als ich auf den Task klickte, aber es funktionierte nicht 100% der Zeit. Das war perfekt. Danke noch einmal! –