Kendo UI Удалить атрибут узла в Treeview
У меня есть несколько узлов, которые содержат items
значение, которое по умолчанию инициализируется из Kendo значением "[]" каждый раз!
Я хочу полностью удалить поле "items" из узла, но я не могу найти какой-либо метод для удаления атрибутов.
Я пытаюсь получить доступ к узлам через dataItem
и я попробовал dataItem.set("items",undefined)
но все же я не думаю, что это помогло. Я пытаюсь удалить items
поле, потому что, кажется, есть проблема с той инициализацией, сделанной кендо, и я не могу добавить новые узлы к ним, и я думаю, что это из-за этого...
РЕДАКТИРОВАТЬ:
Кажется, что kendo.observableHierarchy(data)
инициализирует каждый узел дерева без дочерних элементов (и, следовательно, без items
атрибут all). И под инициализацией я подразумеваю, что каждый раз, когда я показываю источник данных, узлы, которые не имеют дочерних элементов, имеют "items":[]
атрибут добавлен к ним автоматически!
Я пробовал добавлять узлы через treeview.dataItem(treeview.select()).append()
но я обнаружил, что этот метод не работает на "старых" узлах, которые имеют "items":[]
Атрибут добавляется к ним с помощью kendo, поэтому "старые" узлы - это все узлы, которые были загружены в дерево при загрузке страницы и, следовательно, были сохранены в файле JSON.
И я говорю "старый", потому что, если я добавляю новый узел, он не имеет "items"
поле и .append()
упомянутое выше работает довольно хорошо при добавлении узла и обновлении источника данных. .append()
работает довольно хорошо и на "старых" узлах, у которых уже есть дети, и поэтому их "items"
поле не изменено кендо, потому что оно уже существует.
2 ответа
Удаление поля объекта delete XXX
, яve updated the [fiddle] (jsfiddle.net/OnaBai/UC3uW/1) by adding a third option called
но я не понял, что вы предлагаете, это не решит проблему. Я боюсь, что это функция в KendoUI, которая не управляет HierarchicalDataSources, как мы ожидаем.
Я только что обнаружил кое-что интересное в предложенном Кендо ответе по адресу: http://www.telerik.com/forums/clear-all-nodes
Используя предложенный код, также удалите атрибут.items:
$(".k-treeview").data("kendoTreeView").remove(".k-item");