如何解析胡子中的错误值

时间:2016-07-13 07:54:16

标签: templates mustache

我是小胡子的新手。有一个像

这样的对象
object = [{
    name: 'A',
    fields: { type: "string" }
  },
  {
    name: 'B',
    fields: { type: "boolean", default: false }
  }]

我将该对象传递给小胡子模板,我希望生成代码,同时显示默认值。

代码:

{{#object}}
   var {{name}}: {{#fields}} {{type}} {{^default}} = {{default}} {{/default}}{{/fields}}
{{/object}}

但我无法从上面的代码中获得预期的输出。

预期输出:

var A: string
var B: boolean = false

2 个答案:

答案 0 :(得分:0)

如果default字符串 "false",它(差不多)会工作。您目前已获得相当于:

default = false
if (!default) {
  " = " + default
}

...但你需要:

default = "false"
if (default) {
  " = " + default
}

所以这会为你做到:

object = [{
  name: 'A',
  fields: { type: "string" }
},
{
  name: 'B',
  fields: { type: "boolean", default: "false" }
}]

...并将{{^default}}块更改为{{#default}}

{{#object}}
   var {{name}}: {{#fields}} {{type}} {{#default}} = {{default}} {{/default}}{{/fields}}
{{/object}}

答案 1 :(得分:0)

这项工作对我来说:

object : [
  {
    name: 'A',
    fields: { type: "string" }
  },
  {
    name: 'B',
    fields: { type: "boolean", default: "false"}
  }
]

{{#object}}
   var {{name}}: {{#fields}} {{type}} {{#default}} = {{default}} {{/default}}{{^default}}{{/default}}{{/fields}}
{{/object}}

如果false不能改为“false”并且你想要一个如上所示的结果,你可以尝试:

object : [
  {
    name: 'A',
    fields: { type: "string", default: true}
  },
  {
    name: 'B',
    fields: { type: "boolean", default: false}
  }
]

{{#object}}
   var {{name}}: {{#fields}} {{type}} {{#default}}{{/default}}{{^default}}= false{{/default}}{{/fields}}
{{/object}}