我有一个简单的模型:
var model = [{
content: "",
type: "photo",
src: "xxx"
}, {
content: "",
type: "quote",
text: "blah"
}];
和一个简单的模板:
{{if type eq='photo'}}
<img src="{{:src}}" />
<div class="photo-caption">
{{:caption}}
</div>
{{else type eq='quote'}}
<div class="quote-text">
{{:text}}
</div>
{{/if}}
问题是,当type
为“quote”时,模板根本不呈现任何内容。如果我将其稍微更改为两个if
而不是if-else
,则会呈现引号,但也会呈现div class="photo-caption">
。我需要它只渲染一个或另一个。我觉得这是一个简单的语法问题,但似乎找不到足够的文档来说明如何在JsRender网站上正确完成。
Here's a fiddle。两个模板 应该完全相同。相反,一个渲染两者,另一个渲染图像。
答案 0 :(得分:4)
我明白了:
{{if type == 'quote' }}
<div>
{{: text }}
</div>
{{else type == 'photo'}}
<div>
{{: src }}
</div>
{{/if}}
答案 1 :(得分:-2)
当您尝试使用两个if语句的版本时,除了将{{/if}}
更改为{{else}}
之外,您还记得添加{{if}}
吗?
{{if type eq='photo'}}
<img src="{{:src}}" />
<div class="photo-caption">
{{:caption}}
</div>
{{/if}}
{{if type eq='quote'}}
<div class="quote-text">
{{:text}}
</div>
{{/if}}