mustache.js에서 if / else를 어떻게 달성합니까?
콧수염으로 이것을하는 방법을 알 수없는 것이 다소 이상하게 보입니다. 지원됩니까?
이것은 시도하려는 나의 슬픈 시도입니다.
{{#author}}
{{#avatar}}
<img src="{{avatar}}"/>
{{/avatar}}
{{#!avatar}}
<img src="/images/default_avatar.png" height="75" width="75" />
{{/avatar}}
{{/author}}
이것은 분명히 옳지 않지만 설명서에는 이와 같은 내용이 언급되어 있지 않습니다. "else"라는 단어는 언급되지 않았습니다.
또한 콧수염은 왜 이런 식으로 설계됩니까? 이런 종류의 일이 나쁜 것으로 간주됩니까? 모델 자체에서 기본값을 설정하도록 강요합니까? 불가능한 경우는 어떻습니까?
콧수염 (완전히 지원)에서 if / else를 수행하는 방법입니다.
{{#repo}}
<b>{{name}}</b>
{{/repo}}
{{^repo}}
No repos :(
{{/repo}}
또는 귀하의 경우 :
{{#author}}
{{#avatar}}
<img src="{{avatar}}"/>
{{/avatar}}
{{^avatar}}
<img src="/images/default_avatar.png" height="75" width="75" />
{{/avatar}}
{{/author}}
문서에서 역 섹션을 찾으십시오 : https://github.com/janl/mustache.js
이것은 로직리스 템플릿의 요점 인 "컨트롤러"에서 해결하는 것입니다.
// some function that retreived data through ajax
function( view ){
if ( !view.avatar ) {
// DEFAULTS can be a global settings object you define elsewhere
// so that you don't have to maintain these values all over the place
// in your code.
view.avatar = DEFAULTS.AVATAR;
}
// do template stuff here
}
이것은 실제로 템플릿에서 변경되거나 변경되지 않을 수있는 이미지 URL 또는 기타 미디어를 유지하는 것보다 훨씬 낫지 만 익숙해지는 데 약간의 시간이 걸립니다. 요점은 템플릿 터널 비전을 배우고 아바타 img URL을 다른 템플릿에 사용하도록 바인딩하는 것입니다. X 템플릿 또는 단일 DEFAULTS 설정 개체에서 해당 URL을 유지 하시겠습니까? ;)
다른 옵션은 다음을 수행하는 것입니다.
// augment view
view.hasAvatar = !!view.avatar;
view.noAvatar = !view.avatar;
그리고 템플릿에서 :
{{#hasAvatar}}
SHOW AVATAR
{{/hasAvatar}}
{{#noAvatar}}
SHOW DEFAULT
{{/noAvatar}}
그러나 그것은 논리가없는 템플릿의 전체 의미에 위배됩니다. 그것이 당신이하고 싶은 일이라면, 논리적 템플릿을 원하고 콧수염을 사용해서는 안되지만,이 개념을 배울 수있는 공정한 기회를 제공하십시오.)
귀하의 다른 문 (음과 같아야합니다 ^
) :
{{^avatar}}
...
{{/avatar}}
콧수염에서 이것을 '거꾸로 된 섹션'이라고합니다.
참고 URL : https://stackoverflow.com/questions/6027525/how-do-i-accomplish-an-if-else-in-mustache-js
'IT story' 카테고리의 다른 글
iPhone 브라우저에서 localhost에서 실행되는 웹 사이트에 액세스하는 방법 (0) | 2020.04.08 |
---|---|
힘내 병합 오류 (0) | 2020.04.08 |
R의 문자열에서 마지막 n 문자 추출 (0) | 2020.04.08 |
WebKit이 스타일 변경을 전파하기 위해 다시 그리거나 다시 그리도록하려면 어떻게해야합니까? (0) | 2020.04.08 |
루비에서 변수가 nil이 아니고 0이 아닌지 확인 (0) | 2020.04.08 |