有时我会在我正在工作的项目中看到以下内容:
text="@{myVar}"
@做什么?
编辑:text是一个属性,例如TextArea组件。
答案 0 :(得分:23)
@符号用于双向绑定。传统绑定只是一种方式。所以,你在ActionScript中有这样的东西:
[Bindable]
public var myValue:String = 'test';
这在MXML中
<s:TextInput id="myInput" text="{myValue}" />
myValue是源,myInput上的text属性是目标。
当myValue变量更改时,TextInput的text属性将更改。但是,如果输入myInput; myValue的值不会改变。
这是单向绑定。更改源(myValue)会更改目标(myInput.text),但更改目标(myInput.text)不会更改源(myValue)。
当您添加&#39; @&#39;它创建了双向绑定:
<s:TextInput id="myInput" text="@{myValue}" />
所以,现在每当myValue改变时,TextInput的text属性都会改变。 (如上例所示)。 每当myInput.text发生变化时,myValue也会发生变化(与前一个样本不同)。
&#39; @&#39;,基本上,使值(myValue和myInput.text)成为绑定的源和目标。
如果没有&#39; @&#39;你可以完成同样的事情。使用Binding标记:
<fx:Binding source="myInput.text" destination="myValue " />
这对你来说是一个更深入的解释吗?