2012-03-04 5 views
7

아주 간단한 양식을 렌더링하는 데 콧수염 템플릿을 사용하려하지만 양식 중 하나에 라디오 버튼 모음이 있습니다. 양식을 렌더링 할 때 올바른 라디오 단추를 선택하는 방법을 알 수 없습니다.콧수염 템플릿이 포함 된 라디오 입력

단순하고 무언가가 누락되었거나 콧수염의 "논리가없는"면이 정말로 라디오 버튼처럼 기본적인 것을 렌더링하지 못하게합니까? 당신은 람다를 사용하여이 작업을 수행 할 수 있습니다

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> 

답변

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> 

당신이 어떤 문제가 있다면 내가 사용하는 full example에서보세요

내 데이터는 다음과 같이 보인다.

는 업데이트 :

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

전체 예를 here :

저스틴 Hileman 나에게이 일을 다른 방법을 보여 주었다.

1

커피 스크립트 (테스트되지 않은) 또 다른 옵션 ...

// 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 

그리고 콧수염에 동적으로 성별 배열에 따라 버튼을 생성합니다

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