Что делает тег Flex [Bindable]?

Имея в виду . . . Я видел случаи, когда я привязывал компоненты к [Bindable] dataProvider. Когда я обновлял данные в dataProvider, компонент не сразу отражает это изменение. Мне нужно что-то делать, чтобы обновить данные? Какое событие заставляет компонент обновлять данные dataProvider?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
9 659
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

Приведите нам пример того, что не обновляется, и мы сможем оказать конкретную помощь.

Если вам нравится возиться с компилятором командной строки, вы можете использовать флаг compile.keep-generated-actionscript, чтобы увидеть эффект добавления [Bindable] к свойству. Создайте простой класс ActionScript с именем test и добавьте к нему одно связываемое строковое свойство, а затем скомпилируйте его следующим образом:

mxmlc -compiler.keep-generated-actionscript test.as

Это создаст папку с именем «сгенерированный», содержащую все дополнительные сценарии действий, которые в данном случае будут одним файлом с именем (вероятно) «_test-binding-generated.as».

Из этого вы должны увидеть, что добавление связываемого тега просто создает оболочку, которая реализует IEventDispatcher и отправляет событие при вызове установщика. Именно эту оболочку будет слушать ваш компонент.

Если ваш компонент не сразу отражает изменение в своем отображении, это может означать, что вам придется изучить код перерисовки этого компонента. Элемент управления Tree известен из-за такого рода проблем, в основном потому, что обновление может быть дорогостоящим.

«Когда свойство является источником выражения привязки данных, Flex автоматически копирует значение исходного свойства в любое целевое свойство при изменении исходного свойства. Чтобы сигнализировать Flex о выполнении копирования, необходимо использовать тег метаданных [Bindable] чтобы зарегистрировать свойство в Flex, а исходное свойство должно отправлять событие ".

Ответ принят как подходящий

Это, вероятно, перебор, но если вам действительно интересно, что происходит внутри, когда вы добавляете тег [Bindable], я настоятельно рекомендую проверить сеанс Погружение в воды, связывающие данные Майкла Лабриолы из 360 | Flex! San Jose. Это, безусловно, самая глубокая презентация по этой теме, которую вы найдете.

Для просмотра вам необходимо загрузить Adobe Media Player (который работает в Adobe Air). Если у вас есть проблемы с подпиской на сеансы 360 | Flex в Adobe Media Player, следуйте совету Теда Патрика из его сообщения в блоге Ссылка удалена.

Его презентация также есть на Slideshare, но далеко не настолько информативной или развлекательной.

Adobe переработала свой раздел Adobe TV, поэтому, если вы хотите избежать лишних хлопот при установке Adobe Media Player, просто перейдите по этой ссылке в разделе <a href = "tv.adobe.com/watch/360flex-conference/… TV</a>. Намного проще: )

merlinc 10.09.2009 14:55

Текущие ссылки кажутся мертвыми / 404. Есть идеи, где я могу найти копию этого видео?

Nicolas C 18.02.2016 20:54

Ссылка Исключено из ответа, как его открыть веб-сайт порно.

Subodh Joshi 03.07.2020 13:58

Глава 7 руководства разработчика посвящена именно этому. Предлагаю вам прочитать.

Отрывок:

Although raw data objects, such as an Array of strings or objects, are wrapped in collections when you use them as the value of a dataProvider property, using collections explicitly is a better practice. Using collections explicitly ensures data synchronization and provides both simpler and more sophisticated data access and manipulation tools than are available when you are using raw objects directly as data providers. Collections can also provide a consistent interface for accessing and managing data of different types.

См. Также это о привязке данных и массивах

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