2011-01-26 36 views
3

在MXML代碼禁用警告在一個地方

<fx:Script> 
    public var data:ArrayCollection = new ArrayCollection(); 
</fx:Script> 
<s:DataGroup dataProvider="{data}" /> 

我得到一個警告:

數據綁定將無法檢測到分配來的「數據」

我知道在這種情況下數據提供者將永遠不會改變,並且在這種情況下想要抑制此警告,但我不想完全禁用它,所有項目中的-show-binding-options=false都不是一個選項。

如何僅在一個地方禁用警告?禁用整個文件不太好,但可以接受。

+0

到目前爲止沒有好的答案..添加[Bindable]是矯枉過正,並不總是可能的。 – BrunoJCM 2013-12-09 21:29:58

回答

2

如何讓您的data變量可綁定?喜歡的東西:

<fx:Script> 
    [Bindable] 
    public var data:ArrayCollection = new ArrayCollection(); 
</fx:Script> 
<s:DataGroup dataProvider="{data}" /> 
+0

這是我嘗試的第一件事。沒有工作。 – grep 2011-01-26 22:26:31

0

而不是使用<fx:Script></fx:Script>你可以使用<fx:Declarations></fx:Declarations>的。任何在該MXML元素中聲明的對象都可以隱式綁定。以下是您的代碼的外觀:

<fx:Declarations> 
    <s:ArrayCollection id="data" /> 
</fx:Declarations> 

<s:DataGroup dataProvider="{data}" /> 

此外,它變得更具可讀性,並且沒有混用ActionScript和MXML。因爲您的集合被聲明爲公共,所以使用帶有[Bindable]的ActionScript或使用MXML會產生變化。

順便說一句,清潔代碼的一般建議是將ActionScript與MXML完全分開。例如,在我的項目中,我爲每個MXML組件創建了一個單獨的ActionScript文件,格式爲<NameOfComponent>Includes.as