#apache-flex #actionscript-3 #data-binding #cairngorm
#apache-flex #actionscript-3 #привязка к данным #кэрнгорм
Вопрос:
Привет
У меня есть некоторый код. Я использую Cairngorm.
Я создаю простую команду, контроллер, событие, ModelLocator, модель и представление.
На мой взгляд, у меня есть привязка TextInput к переменной ‘value’ из моей модели
<s:TextInput id="textInputName" width="100%" text="{modelLocator.model.value}" valueCommit="modelLocator.model.value = textInputName.text"/>
<mx:HRule width="100%"/>
<s:Button width="100%" label="Reset" click="reset()"/>
Когда я начинаю, текст TextInput является значением ‘value’ моей модели.
Когда я изменяю значение TextInput, это изменяет «значение» моей модели.
Но когда я выполняю сброс, он отправляет событие, и команда устанавливает «значение» модели в «», но текст TextInput не меняется.
Почему? Не изменяется ли значение TextInput из-за изменения значения ‘value’ модели?
Если нет, то что я должен сделать, чтобы это сделать?
Ответ №1:
Убедитесь, что это значение можно привязать в модели.
В качестве дополнительного примечания, вместо использования события valueCommit вы можете использовать функцию двунаправленной привязки, доступную во flex 4:
<s:TextInput id="textInputName" width="100%" text="@{modelLocator.model.value}"/>
Всякий раз, когда значение обновляется, свойство text также обновляется (при условии, что значение является привязываемым) и наоборот
Комментарии:
1. Я нашел свою проблему. Моя модель была привязываемой. Но при сбросе я использую функцию, которую я написал. Функция была
_value = ""
(я меняю непосредственно значение ‘_value’), в чем и заключалась проблема. Я должен поместитьvalue = ""
(я изменяю значение ‘_value’ с помощью установщика), и это изменяет текст TextInput. И спасибо за @ для двунаправленной привязки