4

我正在使用 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"]);

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

从 JSON 提要中获取数据并将其显示在 ListView 页面上的 Javascript 现在显示的是 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())
    });
});

4

2 回答 2

6

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

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

模板语法

Kendo UI 模板使用我们称为“哈希模板”的简单模板语法。使用这种语法,“#”(或哈希)符号用于标记模板中的区域,在执行模板时应将其替换为数据。

使用哈希语法的三种方法:

  1. 呈现文字值:#= #
  2. 呈现 HTML 编码的值:#:#
  3. 执行任意 JavaScript 代码:# if(...){# ... #}#
于 2013-10-27T14:21:01.623 回答
6

好的,解决了这个问题!

对于像我这样的人已经花了太长时间谷歌搜索......

在您的模板中,替换:

${body}

和..

#= body #

它会显示格式化的 HTML

于 2012-10-20T17:04:42.777 回答