我有2个视图显示列表,然后使用调解员获取数据。但是我希望以某种方式干燥它,因此我不必为同一件事重复2次。我该怎么做?

edit1(代码):

[SkinPart(required="false")]
public var WOListsDDL:DropDownList;
    // in partadded
case WOListsDDL:
    // when the selected list is changed in the lists drop down list
    WOListsDDL.addEventListener(IndexChangeEvent.CHANGE, _WOListsDDL_changeHandler);
    WOListsDDL.dataProvider = new ArrayCollection();
    WOListsDDL.labelField = 'title';
break;
    //

    protected function _WOListsDDL_changeHandler(event:*):void{
        _debug('List selection changed handler.');
        _getContentsForList();
    }
    protected function _getContentsForList():void{
        _debug('Getting list items.');
        getItemsSignal.dispatch({key: getSelectedList()._key, itemType: 'item'});
    }
    public var getItemsSignal:GetItemsSignal = new GetItemsSignal();

    override public function mediatorComplete():void{
        getItemsSignal.dispatch({key: tottysAuth.getCurrentUser()._key, itemType: 'list'});
    }

//然后在我的调解人中

    [Inject] public var getItemsSignal:GetItemsSignal;
    override public function onRegister():void{
        // view listeners
        view.getItemsSignal.add(_getItemsSignalHandler);
    }
    protected function _getItemsSignalHandler(input:Object):void{
        getItemsSignal.dispatch(input);
    }

这一切都用于一个视图介绍器。现在,我有2位正在执行这些任务的视图媒体。如何使它们干燥?

我拥有的解决方案:在聆听该事件的调解器中包含下拉列表的小视图。在大部分中,他们正在聆听这个小部分的信号。而已。看起来很好,但我认为不是那么好

有帮助吗?

解决方案

因此,您希望不重复的视图和调解员都有功能吗?

您可以将要重复使用的代码放在另一个对象中,并从多个视图和调解器中调用其方法。或者,您可以将其放入祖先课程中,并在您的视图和调解员中扩展其中的每个类别。

最好的做法是做前者,而不是后者。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top