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

Другие вопросы по тегам