2012-07-17 36 views
0

我們可以在MXML中添加內聯代碼。但是,當我們嘗試從MXML中的NULL對象(內聯代碼)獲取屬性時,flex不會拋出錯誤。但是當我們在動作腳本標記中做同樣的事情時,我們可以看到腳本錯誤拋出。當在MXML中訪問NULL對象屬性時,爲什麼沒有引發腳本錯誤

如何在MXML中捕獲此行爲。任何想法。

對於例如:

Class ValueTo //Model class 
{ 

    public var name:string; 

} 

<fx:Script> 
     <![CDATA[ 
      public var v:ValueTo; 
     ]]> 
    </fx:Script> 

    <mx:Label **text="{v.lable}"** /> //No error thrown, when v=null, i.e null.label 

回答

0

發生這種情況的原因是由於大括號表達式:text="{v.label}。 (除了「大括號」或綁定表達式之外,我永遠不知道該稱呼什麼 - 有人請用適當的詞語編輯/糾正我)。

Flex數據綁定功能通過設計「吞噬」了這些錯誤。正如你可以想象的,例如,當應用程序啓動時,v.label等值可以爲空。爲了方便起見,Flex爲我們處理這些錯誤。但是當我們編寫我們自己的Actionscript時,我們沒有那麼奢侈。

然而這並不神奇。管理數據綁定/大括號表達式的Flex代碼要麼檢查空值,要麼包含在try/catch語句中以處理可能由空對象導致的任何錯誤。

相關問題