2012-03-04 15 views
7

Çok basit formlar oluşturmak için bıyık şablonlarını kullanmaya çalışıyorum, ancak formlardan biri radyo düğmesi koleksiyonuna sahip. Form oluşturulduğunda doğru radyo düğmesinin nasıl seçileceğini anlayamıyorum.Bıyık şablonları ile radyo girişleri

Bu basit bir şey mi ve sadece bir şeyi özlüyor muyum, yoksa bıçağın "mantıksız" yönü gerçekten bir radyo düğmesi kadar temel bir şeyleri rüyamda bırakmamı engelliyor mu? Bir lambda kullanarak yapabilirsiniz

data = { gender: 'female' } 

<form> 
    <label><input type="radio" name="gender" value="male"> Male</label> 
    <label><input type="radio" name="gender" value="female"> Female</label> 
</form> 

cevap

4

:

var data = { 
    gender: 'female', 
    wrapped: function() { 
     return function (text) { 
      return text.replace('value="' + this.gender+'"', 'value="' + this.gender+'" checked'); 
     } 
    } 
}; 

<form> 
    {{#wrapped}} 
    <label><input type="radio" name="gender" value="male"> Male</label> 
    <label><input type="radio" name="gender" value="female"> Female</label> 
    {{/wrapped}} 
</form> 

herhangi bir sorun varsa kullanılan full example göz at

Benim veri şuna benzer.

Güncelleme:

<form> 
<label><input type="radio" name="gender" value="male"{{#maleIsDefault}} checked{{/maleIsDefault}}> 
Male</label> 
<label><input type="radio" name="gender" value="female"{{#femaleIsDefault}} checked{{/femaleIsDefault}}> Female</label> 
</form> 

var data = { 
     gender: 'female', 
     maleIsDefault: function() { 
      return this.gender == 'male'; 
     }, 
     femaleIsDefault: function() { 
      return this.gender == 'female'; 
     } 
}; 

Tam örnek here:

Justin Hileman bana bunu yapmanın başka bir yolunu gösterdi.

1

CoffeeScript (denenmemiş) ile başka bir seçenek ...

// define radio button options in an array 
genders = [ 
    { code: 'M', name: 'Male' } 
    { code: "F", name: "Female" } 
] 

// flag the current object as "selected" 
for g in genders 
    if g.code == existingGenderValue 
    g.selected = true 

Sonra bıyık içinde, dinamik cinsiyet dizisi dayalı düğmeleri oluşturmak:

{{#genders}} 
    <label class="radio"> 
    <input type="radio" name="gender" value="{{code}}" {{#selected}} checked="checked" {{/selected}}> 
    {{name}} 
    </label> 
{{/genders}}