Div клонирования, содержащий входы кендо
У меня есть приложение, которое позволяет пользователям динамически создавать элементы, содержащие входы кендо. Для этого у меня есть div, который содержит несколько входов кендо, которые я использую как своего рода шаблон. Когда пользователь решает добавить раздел на страницу, я клонирую свой div с помощью jquery.clone(). В пользовательском интерфейсе все выглядит хорошо, но поскольку входные данные кендо инициализируются только один раз в HTML, а затем копируются, входные данные не перестраиваются, поэтому исходный идентификатор не является уникальным, а входные данные не работают.
Я пытался исправить это программно, делая
var $kendoInputs = $$(".draggableContainer .k-input");
for (var j = 0; j < $kendoInputs.length; j++) {
if ($($kendoInputs[j]).attr("id")) {
var newid = "newid" + j;
$($kendoInputs[j]).attr("id", newid).attr("name", newid);
}
}
но поскольку входные данные уже инициализированы, изменение идентификаторов на этом этапе бесполезно. Есть ли способ изменить идентификатор входа кендо, а затем перестроить его?
Извините за длинный блок текста и заранее спасибо
1 ответ
Это почти там: http://dojo.telerik.com/@Stephen/EWEna
Попробуйте клонировать только базовые входы элементов кендо (с новым идентификатором) вместо всех элементов, которые добавляет кендо. Затем получите тип и параметры исходного виджета и инициализируйте новый элемент как исходный тип с исходными параметрами.
var originalElement = $("#" + originalID);
var originalWidgetType = "kendo" + kendo.widgetInstance(originalElement).options.name;
var originalWidget = originalElement.data(originalWidgetType);
element[originalWidgetType](originalWidget.options);
Мой пример с додзё близок... но по какой-то причине клонированные DatePickers слишком широки... и я не тестировал все возможные элементы, но думаю, что это можно использовать как начало.
РЕДАКТИРОВАТЬ
Я нашел эту технику с помощью Kendo MVVM, которая, кажется, была бы лучше: http://jsfiddle.net/krustev/U6nSv/
Это не мое решение (не уверен, как кредитовать).
Вот мой оригинальный пример, обновленный для использования этой техники: http://dojo.telerik.com/@Stephen/aquRE