【问题标题】:Short HTML Code from Json will display the HTML code instead of the rendered version来自 Json 的短 HTML 代码将显示 HTML 代码而不是呈现的版本
【发布时间】:2016-04-10 01:03:47
【问题描述】:

我正在检索一个填充了用户数据的数组。它们应该显示在ul 中。其中一个字段是每个用户的前缀,如 <span class="red-text">[Admin]</span> 这样的 html 代码。但是当我尝试附加 li 元素时,它会呈现 html 代码而不是 span 的红色版本。

我的json代码:

{
    "users":[
        {
            "id":"1",
            "usrname":"YannickFelix",
            "email":"example@gmail.com",
            "lvl":"4",
            "prefix":"<span class=\"red-text\">[Admin]<\/span>"
        }
    ]
}

还有我的javascript:

listElemTmplt = `
    <li class="collection-item avatar">
    <i class="material-icons circle {"{{color}}"}">person</i>
    <span class="title">{"{{usrname}}"}</span>
        <p>{"{{prefix}}"} {"{{usrname}}"} | {"{{email}}"}
        </p>
        <span class="secondary-content">
        <a class="waves-effect waves-circle" href="users.php?action=edit&uID={"{{id}}"}">
            <i class="material-icons grey-text text-darken-1">create</i>
        </a>
        <a class="waves-effect waves-circle waves-red modal-trigger" href="#modal{"{{id}}"}">
            <i class="material-icons grey-text text-darken-1">delete</i>
        </a>
    </span>
    <div id="modal{"{{id}}"}" class="modal">
        <div class="modal-content black-text">
            <h4>L&ouml;schen</h4>
            <p>M&ouml;chtest Du den Benutzer "{"{{usrname}}"}" wirklich l&ouml;schen?</p>
        </div>
        <div class="modal-footer">
            <a href="#!" class=" modal-action modal-close waves-effect waves-red btn-flat">Abbrechen</a>
            <a href="users.php?action=del&vID={"{{id}}"}" class="modal-action modal-close waves-effect waves-green btn-flat red-text">L&ouml;schen</a>
        </div>
    </div>
</li>
`;

template = Handlebars.compile(listElemTmplt);
finishedString = [];
$.getJSON("**url**", function (data) {
    console.log(data);
    $("ul#users").html("");
    data["users"].forEach(function (element, index, array) {
        html = template({"{"}id: element["id"], usrname: element["usrname"], email: element["email"], prefix: element["prefix"]{"}"});
        $("ul#users").append(html);
    });
});

列表中的示例项目。 [Admin] 应该是红色的并且没有 html 代码

【问题讨论】:

  • 如果你不使用把手,你也可以使用 jQuery 的parseHTML()

标签: javascript jquery json html handlebars.js


【解决方案1】:

在使用{{prefix}} 时,Handlebars 会转义您给它的值。当您想使用原始 HTML 时,您必须使用 {{{prefix}}} 告诉它不要转义它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-08
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    • 2019-02-24
    • 2019-04-01
    • 2018-03-11
    相关资源
    最近更新 更多