【问题标题】:Disable databinding in MXML在 MXML 中禁用数据绑定
【发布时间】:2010-08-14 22:45:00
【问题描述】:

当 Flex SDK 将 MXML 转换为 actionscript 时,它会生成大量数据绑定代码。但是,有时我不想绑定变量,例如,如果我知道变量不会改变。

我似乎无法在 Flex 中找到解决方法来禁用自动生成的数据绑定。

另外,我希望这也有助于解决数据绑定引发的一些运行时警告。 为了绕过它们,我有时会使用以下内容,它只会引发语法警告(并且不会在运行时出现在我的控制台中)。 语法警告: 使用方括号运算符时,数据绑定将无法检测到更改。对于 Array,请改用 ArrayCollection.getItemAt()。

【问题讨论】:

    标签: apache-flex data-binding code-generation flex4 mxml


    【解决方案1】:

    以下标签将告诉 Flex SDK 变量并没有真正改变并删除“无法绑定...”警告:

    [Bindable("__NoChangeEvent__")]
    private var model:MyModel = MyModel.instance;
    

    接下来,将类似array[i] 的表达式移到单独的函数中以删除警告。如果你有这个:

    <mx:Button label="{array[i]}"/>
    

    然后创建一个函数:

    private function buttonLabel(i):String
    {
        return array[i];
    }
    

    还有 MXML:

    <mx:Button label="{buttonLabel(i)}"/>
    

    P.S:如果按钮标签在运行时发生变化,那么您可以在函数中添加 [Bindable(...)] 元标记:

    [Bindable("stringsChange")]
    private function buttonLabel(i):String
    {
        return array[i];
    }
    
    dispatchEvent(new Event("stringsChange"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多