【问题标题】:How to get HTML from JSON data, Using MUSTACHE?如何使用 MUSTACHE 从 JSON 数据中获取 HTML?
【发布时间】:2011-03-17 07:00:48
【问题描述】:

我在我的新网站中使用 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>",
}}

MUSTACHE 模板:

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

电流输出:

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

需要输出:

string

谢谢你

【问题讨论】:

    标签: php json mustache


    【解决方案1】:

    电流输出:

    <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}}}。请务必仅使用受信任的变量执行此操作,切勿使用它来输出任何用户输入。

    【讨论】:

      【解决方案2】:

      查看 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);
      

      【讨论】:

      • 对不起,我想我无法很好地解释它,实际上我不是将值传回给 PHP,而是从中获取价值.. 我已经编辑了问题以便更好地理解..感谢您的回复.. 期待更多帮助
      猜你喜欢
      • 2017-08-26
      • 1970-01-01
      • 2019-09-16
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      • 2014-07-04
      • 1970-01-01
      相关资源
      最近更新 更多