2012-01-30 2 views
10

나는 backbone.js 레일즈 앱에서 핸들 바를 사용하고 있으며 부울 필드를 가지고 있습니다. 확인란을 채우고 있습니다.체크 상자에 bindAttr을 사용합니다.

내가 편집 페이지를로드 할 때, 폼이 나의 핸들의 형태로 지금

 
{id:3,user:'test',checkbox:1} 

같은 서버 JSON 뭔가의 내용으로 채워집니다, 나는 체크 박스가 있음을 보여주고 싶은 1

 
< input type="checkbox" name="checkbox" value="1" {{#if checkbox}} {{bindAttr checkbox checked="isSelected"}}{{/if}} > 

하지만 체크 된 체크 박스가 반환되지 않습니다. 나는 단지 if checkbox==1라고 말할 수 있기를 정말로 원하지만 핸들 바를 사용하여 어떻게 할 수 있는지 보지 못합니다.

Anysuggestions ??

답변

-6

나는 이것을 위해 핸들 바 헬퍼를 사용했다.

+18

다른 사람들이 배울 수 있도록 예제를 제공 할 수 있습니까? 컨트롤러/컨텍스트에 요소의 "checked"속성을 양방향으로 바인딩하기 위해 (컨트롤러/컨텍스트가 체크 박스가 체크되었을 때 업데이트되도록) 입력 헬퍼를 사용할 수 있습니다 :'{{input type = "checkbox" –

9

일반적으로 '모델'에서 부울을 사용하고 있습니다.

{ 
    isChecked: true 
} 

및 부울이 true 인 경우 다음

<input type="checkbox" {{bindAttr checked="isChecked"}}> 

, 그것은 checked 속성을 렌더링하고, 부울이 false 인 경우,이 속성을 생략 할 것이다. isChecked이 참 그렇다면, 핸들 바는 출력

<input type="checkbox" checked> 

을 것 및 isChecked이 거짓 인 경우에, 우리는 우리가 원하는 것을 어느

<input type="checkbox"> 

을 얻을 것입니다!

+0

} (그러나 'data-unchecked-value'는 ember 입력 헬퍼에서 지원되지 않으므로 다음을 참조하십시오 : http://stackoverflow.com)/questions/9894335) –

7

또한이 작업을 수행하는 도우미를 썼습니다. 그것은 backbone.js를 사용하지 않기 때문에 일부의 대안이 될 수 있습니다

Handlebars.registerHelper('checked', function(currentValue) { 
    return currentValue == '1' ? ' checked="checked"' : ''; 
}); 

사용 예 : 제공된 JSON했다 경우 확인란을 선택겠습니까

<input type="checkbox" name="cbxExample" id="cbxExample" {{checked cbxExample}}/> 

:

{"cbxExample" : "1"} 

결과 :

<input type="checkbox" name="cbxExample" id="cbxExample" checked="checked" /> 

[내 첫 게시물 - 도움이되기를 바랍니다.]

+3

'{'가 이스케이프되지 않도록'{'around를 트리플로 사용하고 싶습니다 .' {{checked cbxExample}} '으로 출력은 실제로'checked = " 체크 됨 "' '{{{checked cbxExample}}}'을 사용하면 정확한 결과를 얻을 수 있습니다 ('checked = "checked"'). –

+0

JSON을 다루는 데 도움이되었습니다 ... 체크 됨 : "true"또는 "false"- 문자열로 return currentValue == 'true'? 'checked': '';' – eon