ile seçici bir HTML öğesinin değerini ayarlama HTML <select>
öğesinin değerini, öğenin çeşitli seçeneklerini değiştirmeden, reaktif olarak ayarlamak istiyorum. Bir çözüm buldum ama zarif değil.Meteor
<body>
{{> select}}
</body>
<template name="select">
<label for="select">{{category}}</label>
<select id="select">
<option value='' disabled selected style='display:none;'>Select...</option>
<option value="Animal">Animal</option>
<option value="Vegetable">Vegetable</option>
<option value="Mineral">Mineral</option>
</select>
</template>
select.js
select.html: test etmek
, create meteor select
ile Barebone Meteor uygulama oluşturup aşağıdaki select.html içeriğini ve select.js dosyaları değiştirmek
if (Meteor.isClient) {
Session.set("category", "")
Session.set("label", "Category")
Template.select.onRendered(function() {
setSelectValue()
})
Template.select.helpers({
category: function() {
setSelectValue()
return Session.get("label")
}
});
function setSelectValue() {
var select = $("#select")[0]
if (select) {
select.value = Session.get("category")
}
}
}
Şimdi uygulamanızı başlatın. ,
Session.set("label", "category") // was "Category'
Şimdi seçme elemanı güncellemeleri: etiketi değiştirene kadar
Session.set("category", "Animal")
Ancak seçeneğini eleman güncelleme olmaz: tarayıcı konsolunda,
category
Oturum değişkenin değerini değiştirebilir ve sonraki herhangi bir değişiklik,
category
Oturum değişkenini ayrıca seçim öğesini güncelleyecektir.
Session.set("category", "Vegetable") // Now the select element updates
Bu olumsuz çözümü kullanmadan, aynı etkiyi doğrudan elde etmek mümkün mü?