当Flex SDK将MXML转换为actionscript时,它会生成大量数据绑定代码。但是,有时我不想绑定变量,例如,如果我知道变量不会改变。
我似乎无法在Flex中找到解决方法来禁用自动生成的数据绑定。
另外,我希望这也可能有助于数据绑定引发的一些运行时警告。 为了解决它们,我有时会使用以下内容,它只会抛出语法警告(并且在运行时不会出现在我的控制台中)。 语法警告: 使用方括号运算符时,数据绑定将无法检测到更改。对于Array,请改用ArrayCollection.getItemAt()。
答案 0 :(得分:3)
以下标记将告诉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"));