سؤال

أنا أستخدم ماتي على مشروع Adobe Flex ل MVC. في أحد صفحاتنا، لدينا نافذة حوار يتم تقديمها إلى المستخدم الذي يعرض معلوماتهم التي تأتي من RPC. الصفحات التي ينبثق بها مربع الحوار هذا غير مرتبط بالبيانات التي يتم عرضها لذلك هذا نموذج منفصل. كيف يمكنني إنشاء ملف رسم الخرائط رفيقه الذي سيخلق نافذة الحوار، وجعله مرئيا للمستخدم، ثم حقن في البيانات من نموذج؟

شكرا للقراءة.

هل كانت مفيدة؟

المحلول

يبدو أنك عثرت على نهج، ولكن إذا كنت مهتما بفكرة أخرى، فهناك مؤشر ترابط جيد حقا على منتديات رفاهية حول كيفية الاقتراب من النوافذ المنبثقة في ماتي. ويشمل بعض الرمز المثال ويناقش أفضل الممارسات المعنية ولماذا يتم اتخاذ بعض الخيارات:

تحويل التطبيق مع النوافذ المنبثقة إلى ماتي << منتديات رفيقه

إذا فهمتك بشكل صحيح، فإليك بعض التعليمات البرمجية للقيام بما تحتاجه (تكييفها من هذا الموضوع). يضخ نتيجة استدعاء 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>
...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top