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