6

我在我的新站点中使用 JSON 和 MUSTACHE 作为模板。但我不知道如何从 json 数据中获取 HTML。我在后端使用 PHP,它作为 API 提供者工作。我对这个概念很陌生。欢迎大家提供帮助和建议。

谢谢。

我正在使用的代码::

<script>
// this is for base
    this.get(/\#\/(.*)/, function (){
      var send_url = '<?php echo $url?>sammy/' + this.params['splat'];
      var context = this;
      $.getJSON(send_url, function(data) {
        var template = data.template;
        context.renderEach('<?php echo $url?>mustache_templates/' + template + '', data.data).swap();
      });
    });
</script>

JSON数据就像::

{"menu": {
  "id": "file",
  "string": "<a href=\"http:\/\/stackoverflow.com\/questions\/5335873\/how-to-get-html-from-json-data-using-mustache#xyz\">string</a>",
}}

小胡子模板:

{{#string}}
<div>
{{string}}
</div>
{{/string}}

电流输出:

<a href="https://stackoverflow.com/questions/5335873/how-to-get-html-from-json-data-using-mustache#xyz">string</a>

需要的输出:

细绳

谢谢

4

2 回答 2

12

电流输出:

<a href="http://stackoverflow.com/questions/5335873/how-to-get-html-from-json-data-using-mustache#xyz">string</a>

那不是输出。你实际得到的是类似的东西

&lt;a href=&quot;http://stackoverflow.com/questions/5335873/how-to-get-html-from-json-data-using-mustache#xyz&quot;&gt;string&lt;/a&gt;

这当然看起来像您在浏览器中发布的内容。Mustache HTML 默认会转义您的所有变量,因此它们不会弄乱您的 HTML。

在这种情况下,您不希望这样,因此您应该{{{string}}}在模板中使用。确保仅使用受信任的变量来执行此操作,切勿使用它来输出任何用户输入。

于 2011-04-28T08:49:49.707 回答
0

看一下PHP 中的json_decode,它会为您提供一个数据数组,您(我认为)可以将这些数据提供给您的模板引擎:

$json = <<< EOJ 
{"menu": {
  "id": "file",
  "string": "<a href=\"http:\/\/stackoverflow.com\/questions\/5335873\/how-to-get-html-from-json-data-using-mustache#xyz\">string</a>",
}}
EOJ;

$json_parsed = json_decode($json_raw, TRUE); // return an array, not an object

DoYourMustacheThingWith($json_parsed);
于 2011-03-17T08:03:18.927 回答