【问题标题】:Kendo template send data剑道模板发送数据
【发布时间】:2013-08-02 15:32:50
【问题描述】:

我想要的很简单,但我不知道是否可行。

我有一个 Kendo Mobile ListView 如下:

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

我想向模板发送一些值以访问它。我对模板的 view 是这样的:

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

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

有什么建议吗?

【问题讨论】:

  • 要么在模型中,要么在全局范围内。我认为问题是您可以在模型中拥有它,而无需使用 DataSource 检索的值列表。这够好吗?你明白我的意思吗?
  • @OnaBai 是的,我明白了。但是,我可以在控制器而不是模型中得到它吗?因此,如果是,并且如果我可以将其发送到模板,将解决我的问题。

标签: javascript jquery kendo-ui kendo-mobile


【解决方案1】:

我建议将此信息添加到控制器中的模型中。您可以在DataSource.schema.parserequestEnd 中执行此操作,如果小部件接受它,即使在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;
        }
    }
});

我在parse 函数中计算parameter 并将parameter.Divi1 设置为大写的CodDivi1,将parameter.Divi2 设置为小写的CodDivi2

【讨论】:

  • 如果使用此方法模板收到CodOs, CodDivi1, CodDivi2, Divi1 and Divi2(将在其中操作 Divi1 和 Divi2)您的答案将满足问题。我将能够在星期一对其进行测试,然后发布结果。非常感谢!
  • 不错!有效!而且您不需要传递该模型对象。数据源内容也可用,我只需要在视图上使用#: parameter.Divi1 #。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-10
  • 1970-01-01
相关资源
最近更新 更多