4

Kendo UI WYSIWYGエディターを使用して、PHPを使用してフォーマットされたテキストをMySQLデータベースに入力しています。このビットは正常に機能します。データベースにHTMLをエンコードしました。

KendoUIListViewを使用してデータベースからデータを出力しています。適切なHTMLエンコーディングを取り戻すには、2つの関数を使用する必要があることがわかりました。

$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で行わなければならないことだと思いますが、すべての解析を行っているため、KendoUIでこれを具体的にどのように実現できるかはわかりません。

私の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

これを修正しました。

私のような人にとっては、グーグルであまりにも長い時間を費やしてきました...

テンプレートで、次を置き換えます。

${body}

と..

#= body #

そしてそれはフォーマットされたHTMLを表示します

于 2012-10-20T17:04:42.777 に答える
6

同じものを探していて、使用した #:

この投稿で、剣道のウェブサイトで答えを見つけました。

テンプレートの構文

Kendo UI テンプレートは、「ハッシュ テンプレート」と呼ばれる単純なテンプレート構文を使用します。この構文では、"#" (またはハッシュ) 記号を使用して、テンプレートの実行時にデータで置き換える必要があるテンプレート内の領域をマークします。

ハッシュ構文を使用するには、次の 3 つの方法があります。

  1. リテラル値のレンダリング: #= #
  2. HTML エンコードされた値をレンダリングする: #: #
  3. 任意の JavaScript コードを実行する: # if(...){# ... #}#
于 2013-10-27T14:21:01.623 に答える