Я связывание массива объектов в шаблон кэндо со следующим кодом:Перебор массив внутри KendoUI шаблон
<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>
Проблема в том, что я получаю 3 экземпляра класса строки DIV и мой цикл имеет только один элемент. Я могу понять, что это рендеринг шаблона для каждого элемента моего массива. Я хочу добиться того, что только один экземпляр шаблона визуализируется и что я могу перебирать каждую из записей внутри шаблона. Я перемещаюсь с Handlebars, где поведение немного отличается, мой цикл работает успешно.
Я знаю, что могу создать внешний массив только с одной записью, а затем это сработает, но было интересно, есть ли лучший способ.
например.
var javascriptData = [{ Name: "First" }, { Name: "Second" }, { Name: "Third" }];
var jsList = [];
jsList.push(javascriptData);
var Model = kendo.observable({
javascriptData: jsList
});
T здесь нет лучшего способа (и я не вижу, как это плохо в первую очередь). Вы привязываете View с ViewModel (ObservableObject), а не массив ViewModel. – Pluc