2010-09-13 53 views
0

我有一個基於mx:ComboBox的自定義組件。在它內部我連接到HTTPService(URL作爲參數傳遞)並綁定組合框。要發送到HTTPService的參數傳遞給組件。這工作正常。但我想對其進行修改以使其可與其他HTTP服務URL重複使用,這些URL會以不同的格式返回XML。如何在運行時動態地將組件綁定到XML節點?

我的挑戰是,我怎麼能自定義組件在運行時動態綁定到一個節點?

組件的MXML代碼如下所示:

<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml" 
    dataProvider="{myData.person} 
    <mx:HTTPService id="serviceTest" 
     resultFormat="e4x" 
     result="myResultHandler(event);" 
     fault="myFaultHandler(event);" /> 
</mx:ComboBox> 

我可能需要更改

myData.person 

到:

myData.region 

可這MXML辦呢?

或能不能在ActionScript中做了什麼?有沒有像這樣的:

this.dataProvider = myData.[person]; 

訣竅是我不知道該綁定什麼,因爲每次使用它時XML都會有所不同。

這可能嗎?或任何解決方法,實現相同的事情?

編輯:它的工作原理與「子」屬性。

的dataProvider = 「{myData.child(myDataField)}」

但是,如果數據字段是進一步嵌套不起作用。例如。 myData.people.person

如果數據字段嵌套在另一個節點下,是否有辦法讓它工作?這可以使用XPATH表達式或其他方法完成嗎?

回答

0

它不可能。 '綁定'是(Flex)框架能力 - 非標準(AS)語言構建。 你必須自己管理所有事件。

+0

要麼我不理解你,要麼你不理解我。我正在處理HTTPservice的結果和錯誤事件。我能夠讓組件工作 - 我只是不能使它成爲通用組件。你在說什麼事件?你能解釋一下嗎? – Zesty 2010-09-13 11:06:40

1

使用「孩子」屬性。

+0

不,如果節點進一步嵌套,這不起作用。例如。 myData.people.person – Zesty 2010-09-13 07:58:10

相關問題