【问题标题】:What does the "@" do?“@”有什么作用?
【发布时间】:2011-12-30 18:28:23
【问题描述】:

有时我会在我正在工作的项目中看到以下内容:

text="@{myVar}"

那个@是做什么的?

编辑:文本是一个属性,例如,TextArea 组件。

【问题讨论】:

    标签: actionscript-3 apache-flex flash-builder


    【解决方案1】:

    @ 符号用于双向绑定。传统绑定只是一种方式。所以,你在 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)。

    当您添加“@”时,它会创建一个双向绑定:

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

    所以,现在每当 myValue 改变时,TextInput 的 text 属性就会改变。 (如上一个示例)。 每当 myInput.text 发生变化时,myValue 也会发生变化(与上一个示例不同)。

    基本上,'@' 使值(myValue 和 myInput.text)成为绑定的源和目标。

    您可以通过使用Binding 标签来完成同样的事情,而无需“@”:

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

    这对你来说是更深入的解释吗?

    【讨论】:

    • 哇,我不知道这会存在!
    • 这是 Flex 4 的新功能。
    猜你喜欢
    • 2023-04-10
    • 2011-07-17
    • 2014-09-13
    • 1970-01-01
    • 2019-04-26
    • 2016-04-29
    • 2017-03-02
    • 2012-10-04
    • 1970-01-01
    相关资源
    最近更新 更多