Что делает "@"? - PullRequest
       19

Что делает "@"?

6 голосов
/ 17 ноября 2011

Иногда я вижу в проекте, над которым я работаю, следующее:

text="@{myVar}"

Что это делает @

Редактировать: текст является свойством, например, компонента TextArea.

1 Ответ

23 голосов
/ 17 ноября 2011

Символ @ используется для двухстороннего связывания.Традиционное связывание - это только один из способов.Итак, у вас есть что-то вроде этого в ActionScript:

[Bindable]
public var myValue:String = 'test';

И это в MXML

<s:TextInput id="myInput" text="{myValue}" />

myValue является источником, а свойство text в myInput является местом назначения.

При изменении переменной myValue текстовое свойство TextInput изменится.Однако, если вы введете в myInput;значение myValue не изменится.

Это односторонняя привязка.Изменение источника (myValue) меняет место назначения (myInput.text), но изменение места назначения (myInput.text) не меняет источник (myValue).

Когда вы добавляете «@», это создает двапуть привязки:

 <s:TextInput id="myInput" text="@{myValue}" />

Итак, теперь, когда изменяется myValue, свойство text TextInput будет меняться.(Как и в предыдущем примере).Всякий раз, когда изменяется myInput.text, myValue также будет меняться (в отличие от предыдущего примера).

В основном '@' делает оба значения (myValue и myInput.text) источником и местом назначения для привязки.

Вы можете сделать то же самое без '@', используя тег Binding :

<fx:Binding source="myInput.text" destination="myValue " />

Это более подробное объяснение для вас?

...