对于在我的应用程序中使用 mustache 模板(或更准确地说是Hogan),我有一个简单/入门的问题。
我使用的API有时会返回一个字符串,有时会返回一个字符串数组。
我知道可以将String包裹在一个单元素数组中,但是还有一种方法可以处理 mustache 模板中的这种可选性吗?
使用正常的部分,例如{{#stringOrArray}}
<li>{{.}}</li>
{{/stringOrArray}}
如果它只是一个字符串,则不打印该值。
最佳答案
我知道已经有点晚了,但是这是我使用的方法:
{{#test.length}}
{{#test}}<li>{{.}}</li>{{/test}}
{{/test.length}}
{{^test.length}}
<li>{{test}}</li>
{{/test.length}}
就像特征检测一样。代码的第一块检查是否test有长度,如果有,它是一个数组(是的,我知道字符串也应该具有length属性,但没有)。它要么输出数组(如果是数组),要么不输出(如果不是)。如果没有长度(例如,它是字符串或整数等),第二个块将打印出test的值。这意味着您可以在以下位置使用它:var data = {
test: "test1"
}
或者var data = {
test: [ "test1", "test2", "test3" ]
}
不必为它是否为数组设置标志。 mustache 将同时输出,但您不需要的将为空。
关于mustache - 如何处理 mustache 模板中的字符串或字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21545670/