0
我使用一個Adobe Flex項目的MVC MATE。在我們的一個頁面上,我們有一個對話窗口,顯示給用戶顯示來自RPC的信息。該對話框彈出的頁面與所顯示的數據無關,因此這是一個單獨的模型。如何創建一個MATE映射文件來創建對話框窗口,使其對用戶可見,然後從模型中注入數據?Flex的伴侶,如何備份彈出(對話)與模型
感謝您的閱讀。
我使用一個Adobe Flex項目的MVC MATE。在我們的一個頁面上,我們有一個對話窗口,顯示給用戶顯示來自RPC的信息。該對話框彈出的頁面與所顯示的數據無關,因此這是一個單獨的模型。如何創建一個MATE映射文件來創建對話框窗口,使其對用戶可見,然後從模型中注入數據?Flex的伴侶,如何備份彈出(對話)與模型
感謝您的閱讀。
好像你找到了一個辦法,但如果你有興趣的另一個想法,有關於如何在擇偶接近彈出窗口的伴侶論壇一個很好的線索。它包括一些示例代碼,並討論所涉及的最佳實踐,以及爲什麼某些選擇正在作出:
Converting app with popups to Mate << Mate Forums
如果我理解正確的話,這裏是一些代碼,你需要什麼(改編自該線程)。它注入RPC調用到視圖的結果(保持地圖不可知怎麼視圖顯示的數據),視圖將創建一個彈出每當有數據,並刪除彈出時沒有數據。該線程進一步解釋了大部分代碼。
EventMap:
<Injectors target="{PopupParentView}">
<PropertyInjector destinationKey="rpcData"
source="{FooManager}" sourceKey="rpcData" />
</Injectors>
PopupParentView: ...
private var popup : UIComponent;
private var rpcData : Object;
private function onPreinitialize(event : Event) : void {
BindingUtils.bindSetter(rpcDataChanged, this, "rpcData");
}
private function rpcDataChanged(value : Object) : void {
invalidateProperties();
}
override protected function commitProperties() : void {
// two mutually exclusive branches: either the property can be interpreted as "show the popup"
// and the popup doesn't exist, or we shouldn't show the popup, but it does exist. all other
if (rpcData != null && popup == null) {
popup = PopUpManager.createPopUp(...);
} else if (rpcData == null && popup != null) {
// make sure to set the popup property to null
PopUpManager.removePopUp(popup);
popup = null;
}
}
</Script>
...
+1不是一個答案,但一個很好的起點。謝謝! – davidemm 2010-05-27 20:40:41
是的好點 - 我從線程中拉出了一些代碼(改編爲我之前使用的代碼)。讓我知道這是否有幫助。 – Brian 2010-05-28 14:46:33
感謝Brian的幫助!我創建了一個沒有從任何可視組件繼承的純ActionScript類,它的唯一目的是按照您在答案中描述的方式處理popUpManager。如果另外一個人採取了這種辦法,確保在MATE,你趕上FlexEvent.INITIALIZE事件和處理程序中,使用MATE ObjectBuilder的標籤實例創建,因爲它不會自動爲部分中創建的對象的實例的看法。 – davidemm 2010-06-04 18:39:17