如何在小胡子模板中处理字符串或字符串数​​组

lms*_*ant 9 mustache hogan.js

我有一个简单/初学者的问题,在我的应用程序中使用小胡子模板(或更准确地说是Hogan).我使用的API有时会返回一个String,有时会返回一个字符串数组.

我知道可以将String包装在单个元素数组中,但是还有一种方法可以从胡子模板中处理这个选项吗?

使用普通部分
{{#stringOrArray}} <li>{{.}}</li> {{/stringOrArray}} 如果只是一个字符串,则不会打印该值.

Jez*_*ral 13

我知道有点晚了,但这是我用的:

{{#test.length}}
    {{#test}}<li>{{.}}</li>{{/test}}
{{/test.length}}

{{^test.length}}
    <li>{{test}}</li>
{{/test.length}}
Run Code Online (Sandbox Code Playgroud)

这就像功能检测.第一个代码块检查测试是否有一个长度,如果是,它是一个数组(是的,我知道字符串也应该有一个长度属性,但它们没有).它将输出数组(如果它是一个数组),或者什么都不输出(如果不是).第二个块打印出test的值,如果它没有长度(即它是一个字符串或整数等)这意味着你可以使用它:

var data = {
    test: "test1"
}
Run Code Online (Sandbox Code Playgroud)

要么

var data = {
    test: [ "test1", "test2", "test3" ]
}
Run Code Online (Sandbox Code Playgroud)

无需设置是否为数组的标志.胡子会为你解决问题.