在Kendo UI中显示编码的HTML

use*_*049 3 javascript php mysql kendo-ui

我正在使用Kendo UI WYSIWYG编辑器使用PHP将格式化文本输入到MySQL数据库中.这个位工作正常.我在我的数据库中编码了HTML.

我正在使用Kendo UI ListView从数据库输出数据.我想我需要使用2个函数来获取正确的HTML编码:

$row["body"] = stripslashes(html_entity_decode($row["body"]));
$row["body"] = str_replace(" ", " ", $row["body"]);
Run Code Online (Sandbox Code Playgroud)

现在,JSON提要输出正确的HTML(据我所知,只需最少的测试).

Javascript采取的Javascript从JSON提要中获取数据并在ListView中显示在页面上,现在显示HTML代码,而不是编码的HTML代码,这很好,但我真正喜欢的是显示它实际的格式化文本.

我已经尝试过第二次通过html_entity_decode()解析字符串,没有运气.我认为这是必须用JS完成的,但我不确定如何使用Kendo UI实现这一点,因为它正在进行所有的解析.

我的JS:

$(document).ready(function() {
    var dataSource = new kendo.data.DataSource({
                transport: {
                    read: {
                        url: "http://dev.openbill.co.uk/admin/crud/viewticket/main.json.php?id=<?php echo $_GET['id']; ?>",
                        contentType: "application/json; charset=utf-8",
                        type: "GET",
                        dataType: "json",
                    }
                },
                schema: {
                    data: "data",
                    total: "total",
                    parse: decode
                },
                serverPaging: true,
                serverSorting: true,
                pageSize: 10,
                page: 1,
            });

    $("#pager").kendoPager({
        dataSource: dataSource
    });

    $("#listView").kendoListView({
        dataSource: dataSource,
        template: kendo.template($("#template").html())
    });
});
Run Code Online (Sandbox Code Playgroud)

use*_*049 5

好的修好了!

对于任何喜欢我的人花了太长时间谷歌搜索......

在您的模板中,替换:

${body}
Run Code Online (Sandbox Code Playgroud)

随着..

#= body #
Run Code Online (Sandbox Code Playgroud)

它将显示格式化的HTML

  • 同样的故事,但使用的是 Kendo Grid。一些问题 - 剑道网格列有一个属性encode: false / true,它还将指定您是否想让网格自动编码该项目。这不适用于模板,因此您需要从模板控制编码。还有另一个问题 - 您还可以使用 #: # 代替 #= # 这也将对模板字段进行编码。似乎只有 #= # 不会对它们进行编码。 (2认同)

小智 5

正在寻找相同的东西并使用#:

通过这篇文章,我在剑道网站上找到了答案:

模板语法

Kendo UI模板使用我们称之为"哈希模板"的简单模板语法.使用此语法,"#"(或哈希)符号用于标记模板中的区域,该区域应在执行模板时替换为数据.

有三种方法可以使用哈希语法:

  1. 渲染文字值:#=#
  2. 渲染HTML编码的值:#:#
  3. 执行任意JavaScript代码:#if(...){#...#}#