如何使用ICanHaz的小胡子javascript模板引擎?

时间:2012-05-24 19:46:25

标签: template-engine icanhaz.js

我有一个JSON字符串:

{
  "items": [
      {"name": "red" },
      {"name": "blue" }
  ],
  "test" : {
        "items" :[
             { "name" : "Hello" },
             { "name" : "World" }
         ]
  }
}

如何打印

<li>Hello</li>
<li>World</li>

我尝试使用下面的模板,但它不起作用。它改为打印“红色和蓝色”。我没有权限更改JSON字符串,我只能操纵模板。

{{#test}}
  {{#items}}
     <li>{{name}}</li>
  {{/items}}
{{/test}}

1 个答案:

答案 0 :(得分:3)

出于某种原因,以下代码:

<head>
<script src="https://github.com/andyet/ICanHaz.js/raw/master/ICanHaz.js"></script>

<script>
function clicked()
{
       ich.addTemplate("user", "{{#test}} {{#items}} <li>{{name}}</li>\n {{/items}} {{/test}}");
       document.getElementById("result").innerHTML = ich.user(userData);
}

var userData = {
  "items": [
      {"name": "red" },
      {"name": "blue" }
  ],
  "test" : {
        "items" :[
             { "name" : "Hello" },
             { "name" : "World" }
         ]
  }
};

</script>

</head>
<body>
    <button onclick="clicked()">CLICK</button>
    <ul id="result"><li>Result</li></div>
</body>

准确地给了我:

  • 你好
  • 世界

所以,你的模板应该是正确的。