Не удалось обновить элемент управления деревом новыми ветвями после успешного вызова RemoteObject

StackOverflow https://stackoverflow.com/questions/2186447

Вопрос

Я пытаюсь заполнить компонент mx: tree значениями, которые я получаю от BlazeDS.Возвращаемые данные из BlazeDS в порядке - это ArrayCollection объектов значений папок.

Мне было поручено использовать Cairngorm для этого проекта.Я довольно новичок во Flex и Cairngorm.Согласно ограниченной документации, которую я прочитал в Интернете, я должен заполнить модель данными, поэтому я вставил туда коллекцию массивов.

С чем я застрял, так это с попыткой обновить компонент дерева.Я чувствую, что мне нужен какой-то способ уведомить компонент контейнера для дерева о том, что данные (т. е.вложенные папки) доступны в модели.Я надеялся, что можно было бы запустить функцию в компоненте контейнера, чтобы добавить вложенные папки в качестве дочерних элементов выбранного узла (я мог бы добавить это в модель перед вызовом удаленного объекта, я думаю), затем запустить tree.invalidateList() и tree.validateNow().Есть какие-нибудь идеи?

Это было полезно?

Решение

Я нашел способ сделать это, хотя я не уверен, что это рекомендуемый способ.

Я получил командный класс, чтобы привязать ArrayCollection папки VOs к свойству с именем "вложенные папки" в модели.Я использовал ChangeWatcher в родительском контейнере дерева, чтобы просмотреть свойство модели "вложенные папки" и запустить функцию для обновления узла дерева, когда это потребуется.

Если кто-то знает способ получше, пожалуйста, скажите.Я надеялся найти кулинарную книгу Кэрнгорма или статью о лучших практиках, но пока что ни на что подобное не натыкался.Документация Cairngorm кажется довольно скудной - я удивлен, что это самый популярный фреймворк Flex, учитывая этот факт.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top