在胡子javascript模板中运行的意外第二个参数

时间:2012-05-12 02:22:22

标签: javascript html templates mustache

我注意到使用lambdas时:

{
  "name": "Willy",
  "wrapped": function() {
    return function(text) {
      return "<b>" + render(text) + "</b>"
    }
  }
}

传入第二个参数(除text之外)。第二个参数是函数:

function (template) {
    return render(template, scope);
}

返回html,给定一个模板(带有初始输入json对象)。

所以,如果我有lambda如下:

"wrapped": function() {
  return function(text, func) {
    ....
}

我们希望func("<div>{{name}}</div>")返回表示div的html,其内容将填入json数据对象的'name'属性中的任何内容。

然而,func("{{.}}")不起作用。 我希望对象代表初始输入对象。

相反,我得到了STRING "[object Object]"。当我尝试使用JSON.parse时,它会给我一个'意外的令牌o'错误。

1 个答案:

答案 0 :(得分:1)

您尝试解析为JSON的代码实际上不是JSON。它只是一个JavaScript对象文字。因此,当您尝试将{{.}}放入模板时,您正确地获得[object Object],因为这是对象的字符串表示形式。