0

私が欲しいのは簡単ですが、それが可能かどうかはわかりません。

以下のような Kendo Mobile ListView があります。

e.view.element.find("#list-serviceorders").kendoMobileListView({
    dataSource: ds,
    pullToRefresh: true,
    template: $("#list-serviceorders-template").html()
});

そして、テンプレートにアクセスする値をテンプレートに送信したいと思います。テンプレートを使用した私の見解は次のとおりです。

<div data-role="view" data-before-show="GAPCP.viewBeforeShow" id="serviceorders" data-layout="main-item-list">
    <ul id="list-serviceorders"></ul>
</div>

<script id="list-serviceorders-template" type="text/x-kendo-template" data-teste="teste">
    <a href="views/entries.html?id=#: CodOs #">OS: #: CodOs #<br />
    #: parameter.Divi1 #: #: CodDivi1 #/#: parameter.Divi2 #: #: CodDivi2 #</a>
</script>

あなたが読むことができparameter.Divi1parameter.Divi2それらの値を表示したい場所です。それらは、他の値のようにデータ ソースにはありません。

コードをいじりたくないので、グローバル変数を作成したくありません。そのための関数を使用することはできません。これらの値はデータベースから取得され、リスト項目の反復ごとにクエリが実行されるためです。 .

それを行う方法の提案はありますか?

4

1 に答える 1

3

私が提案しているのは、この情報をコントローラーのモデルに追加することです。ウィジェットが受け入れる場合は、イベント内であっても、DataSource.schema.parseまたは で実行できます。requestEnddataBound

データを受信したら、モデルを反復処理し、サーバーから受信していない残りのデータを埋めます。

例: 使用parse

var ds = new kendo.data.DataSource({
    transport: {
        read: {
            url : ...
        }
    },
    schema   : {
        model: {
            CodOs   : { type: "number" },
            CodDivi1: { type: "string" },
            CodDivi2: { type: "string" }
        },
        parse: function (data) {
            $.each(data, function (idx, elem) {
                // Extend original elem
                elem.parameter = {
                    Divi1: elem.CodDivi1.toUpperCase(),
                    Divi2: elem.CodDivi2.toLowerCase()
                }
            });
            return data;
        }
    }
});

関数parameter内で計算し、大文字と小文字でtoを設定する場所。parseparameter.Divi1CodDivi1parameter.Divi2CodDivi2

于 2013-08-02T23:14:21.657 に答える