Kendo Knockout: загрузка treeView с kendo.data.dataSource

В настоящее время библиотека kendo-knockout не поддерживает передачу kendo.data.dataSource в привязки. Мне удалось загрузить treeView с источником данных кендо, используя справочный образец виджета в обновлении моего поста здесь: Kendo-Knockout: используйте нокаутную модель представления с источником данных kendo для заполнения kendoTreeView. Но не удалось добавить и удалить элементы, а также некоторые другие проблемы. Я пишу этот вопрос на основе комментария RP Niemeyer в github:

https://github.com/rniemeyer/knockout-kendo/issues/6

говоря, что это должно быть возможно, если я передам что-то вроде data: false, dataSource: yourDataSource и эту скрипку:

http://jsfiddle.net/rniemeyer/s5G5k/

Следуя этому примеру, я попытался реализовать treeView:

http://jsfiddle.net/s5G5k/6/

но я получаю сообщение об ошибке: Cannot call method 'toLowerCase' of undefined

Итак, мой вопрос здесь: может ли это работать, и могу ли я затем добавлять/удалять объекты в источник данных и соответственно видеть обновления представления? Спасибо!


person Mdb    schedule 18.01.2013    source источник
comment
Похоже, мне нужно пересмотреть возможность прямой передачи источника данных. Извините, у вас еще не было возможности разобраться в этом или другом вопросе в виде дерева, который у вас есть.   -  person RP Niemeyer    schedule 18.01.2013
comment
Понимаю. Планируете ли Вы реализовать этот функционал в ближайшее время? Я думаю о воссоздании древовидного представления в доме каждый раз, когда узел добавляется или удаляется. Или есть какой-нибудь обходной путь, который я могу использовать? И позже рефакторинг этой части, когда ваша реализация будет готова. Спасибо.   -  person Mdb    schedule 19.01.2013
comment
Воссоздание его, вероятно, лучший вариант на данный момент. Возможно, вы могли бы обернуть его в with и обновить значение with, когда вы хотите, чтобы он восстановился.   -  person RP Niemeyer    schedule 19.01.2013
comment
Я не уверен, правильно ли я понял сценарий привязки «с». Я сделал это: jsfiddle.net/6SEzp/108, но представление все равно не обновляется. Не могли бы вы обновить скрипку своей идеей, если это возможно?   -  person Mdb    schedule 21.01.2013
comment
Возможно, что-то вроде этого: jsfiddle.net/rniemeyer/6VZxB   -  person RP Niemeyer    schedule 21.01.2013
comment
Спасибо. Я попробую это. Пожалуйста, опубликуйте свое решение в отдельном посте, чтобы я мог его принять.   -  person Mdb    schedule 21.01.2013


Ответы (1)


Мне действительно нужно вернуться к добавлению возможности передавать источник данных непосредственно в виджеты.

Одним из решений на данный момент является обернуть ваше древовидное представление в привязку «с» и повторно отображать его при добавлении/удалении элементов.

Может быть, как:

<div data-bind="with: treeView">
    <div id="reportGrid" data-bind="kendoTreeView: { dataSource: treeViewDataSource }"></div>
</div>

http://jsfiddle.net/rniemeyer/6VZxB/

person RP Niemeyer    schedule 21.01.2013