我想要的很简单,但我不知道是否可能。
我有一个 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.Divi1
和 parameter.Divi2
的位置是我想要显示这些值的位置。它们不像其他值那样位于数据源中。
我不想创建全局变量,因为我不想弄乱我的代码,并且我不能为此目的使用函数,因为这些值来自数据库,并且它将为每个值执行一个查询列表项迭代。
有什么建议吗?
最佳答案
我建议将此信息添加到 Controller 中的模型中。您可以在 DataSource.schema.parse
中进行或在 requestEnd
,即使在 dataBound
事件中(如果小部件接受它)。
收到数据后,您将迭代模型并填充未从服务器接收到的剩余数据。
示例:使用解析
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
。
关于javascript - 剑道模板发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18020807/