【发布时间】:2015-02-19 17:05:32
【问题描述】:
我已经使用以下代码将一组对象绑定到剑道模板:
<script id="Template4" type="text/x-kendo-template">
<div class="row">
# for (var i = 0; i < data.length; i++) { #
<div class="col-md-6 " data-maxpanel="4">
</div>
# } #
</div>
</script>
<div class="page-detail container-fluid" id="canvas" data-bind="source: javascriptData" data-template="Template4">
</div>
<script>
var javascriptData = [{ Name: "First" }, { Name: "Second" }, { Name: "Third" }];
var Model = kendo.observable({
javascriptData: javascriptData
});
kendo.bind($("#canvas"), Model);
</script>
问题是我得到了行类 div 的 3 个实例,而我的循环只有一项。我可以理解这是为我的数组的每个元素呈现模板。我想要实现的是只呈现模板的一个实例,并且我可以循环遍历模板内的每条记录。我正在从行为略有不同的 Handlebars 迁移,我的循环成功运行。
我知道我可以创建一个只有一条记录的外部数组,然后它会起作用,但我想知道是否有更好的方法。
例如
var javascriptData = [{ Name: "First" }, { Name: "Second" }, { Name: "Third" }];
var jsList = [];
jsList.push(javascriptData);
var Model = kendo.observable({
javascriptData: jsList
});
【问题讨论】:
-
没有更好的方法(而且我一开始不明白这是一个坏方法)。您将 View 与 ViewModel (ObservableObject) 绑定,而不是 ViewModel 数组。
标签: jquery templates mvvm kendo-ui