#apache-flex #forms #binding #types
#apache-flex #формы #привязка #типы
Вопрос:
Как двусторонне привязать целое число к полю ввода в Flex / FB4? is_admin — это целое число :
<s:TextInput id="textUserIsAdmin" text="@{user.is_admin}" width="5"/>
Я получаю:
1067: Implicit coercion of a value of type String to an unrelated type int.
Существует ли другой тип ввода, или я должен привязать другим способом?
Ответ №1:
Короткий ответ, вы не можете выполнить двустороннюю привязку при попытке изменить саму природу объекта, который вы привязываете. Они должны быть одинаковыми, иначе это не сработает. С учетом сказанного, существует обходной путь:
<s:TextInput id="textUserIsAdmin" text="{user.is_admin}" restrict="0-9" change="user.is_admin = int(textUserIsAdmin.text)"/>
Как вы можете видеть здесь, я привязываю исходное значение из модели, но затем, когда пользователь что-то вводит, отправляется событие изменения, а значение TextInput преобразуется и сохраняется. Я также добавил ‘restrict’, чтобы можно было вводить только числа.
Ответ №2:
РЕДАКТИРОВАТЬ: Убедитесь, что я даю вам ответ, который вы хотите.
Если вы хотите, чтобы значение целого числа было в TextInput и вы хотите преобразовать значение textinput в user.is_admin, используйте следующее:
<s:TextInput id="textUserIsAdmin" text="@{user.is_admin.toString()}" change="user.is_admin = int(textUserIsAdmin.text);" width="5" />
Надеюсь, это поможет.
Комментарии:
1. Вы должны прочитать вопрос. Он хочет преобразовать строку в int.