Я пытаюсь изучить JSRender. Можно ли отображать подшаблон в зависимости от условия? Например, если #index = 1 или 2, отображать шаблон A, если 3 или 4, отображать шаблон B?
JSRender - как условно отображать подшаблон
comment
Спасибо, это здорово. Каков синтаксис для вызова подшаблонов в этом контексте?
- person user2427285   schedule 18.04.2014
comment
что означает подшаблон.. опубликуйте свой код
- person Deepak Ingole   schedule 18.04.2014
comment
Наценка для каждого варианта довольно сложная. Вместо того, чтобы размещать код между условиями, я хочу поместить его в подшаблоны и вызвать их в коде. Я видел что-то подобное...{{для статьи tmpl=#ArticleTemplate/}}. Это выглядит правильно?
- person user2427285   schedule 18.04.2014
comment
Спасибо за помощь. Этот код работал: ‹script id=testone type=text/x-jsrender› Шаблон 1 ‹/script› ‹script id=testtwo type=text/x-jsrender› Template 2 ‹/script› ‹script id=tmplFeaturePanel type=text /x-jsrender› {{для списка}} {{if #index == 1}} {{include tmpl=#testone/}} {{›elseif #index ==2 }} {{include tmpl=#testtwo/ }} {{/if}} {{/for}} ‹/script›
- person user2427285   schedule 19.04.2014
comment
Опубликуйте свой ответ и отметьте его как правильный
- person Deepak Ingole   schedule 19.04.2014
comment
Обратите внимание, что {{›elseif ...}} является неправильным синтаксисом.
- person BorisMoore   schedule 20.04.2014
Ответы (1)
Вот правильный синтаксис и некоторые ссылки на документацию ниже.
<script id="tmplFeaturePanel1" type="text/x-jsrender">
{{for List}}
{{if #index == 1 || #index == 2}}
{{include tmpl="#test1or2"/}}
{{else #index === 3 || #index === 4 }}
{{include tmpl="#test3or4"/}}
{{else}}
{{include tmpl="#testOther"/}}
{{/if}}
{{/for}}
</script>
или еще более компактный синтаксис, который работает точно так же:
<script id="tmplFeaturePanel2" type="text/x-jsrender">
{{for List}}
{{if #index == 1 || #index == 2 tmpl="#test1or2"}}
{{else #index === 3 || #index === 4 tmpl="#test3or4"/}}
{{else tmpl="#testOther"/}}
{{/if}}
{{/for}}
</script>
где в обоих случаях ссылочные шаблоны могут быть:
<script id="test1or2" type="text/x-jsrender">
1or2 {{:name}}
</script>
<script id="test3or4" type="text/x-jsrender">
3or4 {{:name}}
</script>
<script id="testOther" type="text/x-jsrender">
Other: {{:name}}
</script>
Видеть
- http://www.jsviews.com/#samples/jsr/composition/tmpl а>
- http://www.jsviews.com/#iftag
- http://www.jsviews.com/#includetag
Кстати, обратите внимание, что {{elseif ...}}
или {{else if ...}}
НЕ является правильным синтаксисом. На самом деле {{else someExpression}}
работает как elseif. {{else}}
работает как else.
person
BorisMoore
schedule
20.04.2014
Спасибо за четкий и полезный ответ. Это улучшение моего кода, которое я буду использовать.
- person user2427285; 20.04.2014