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.Divi1,并且parameter.Divi2是我想要显示这些值的地方。它们不像其他值那样位于数据源中。

我不想创建全局变量,因为我不想弄乱我的代码,我不能为此目的使用函数,因为这些值来自数据库,它将为每个列表项迭代执行查询.

关于如何做到这一点的任何建议?

4

1 回答 1

3

我建议将此信息添加到控制器中的模型中。您可以在DataSource.schema.parse或 中执行此操作requestEnd,即使在dataBound小部件接受它的情况下也是如此。

收到数据后,您将遍历模型并填充未从服务器接收到的剩余数据。

示例:使用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内部计算parse并设置parameter.Divi1CodDivi1大写和parameter.Divi2小写CodDivi2

于 2013-08-02T23:14:21.657 回答