robotlegs: Ich habe 2 Ansichten und Vermittler, die gemeinsam 1, was, wie ich es trocknen kann?

StackOverflow https://stackoverflow.com/questions/4111258

  •  29-09-2019
  •  | 
  •  

Frage

Ich habe 2 Ansichten, die Listen zeigen, die dann einen Mediator verwendet, um Daten zu erhalten. aber ich möchte in irgendeiner Weise zu trocknen, so muss ich mich selbst 2-mal für die gleiche Sache nicht wiederholen. wie kann ich es tun?

EDIT1 (Code):

[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'});
    }

// dann in meinem Vermittler

    [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);
    }

das alles für einen Blick-Vermittler. jetzt habe ich 2 View-Vermittler, die diese Aufgaben tun. Wie machen sie trocken?

Lösungen ich habe: macht einen kleinen Blick auf die Dropdown-Liste mit einem Mediator enthält, die für das Ereignis wartet. in den großen Komponenten, die sie für ein Signal im Hinblick auf diese kleinen Komponente hören. nichts mehr. es scheint ganz gut, aber ich glaube nicht so groß ist,

War es hilfreich?

Lösung

So ist es Funktionalität sowohl auf den Ansichten und den Vermittlern, dass Sie möchten, dass nicht wiederholen?

Sie könnten den Code setzen Sie in einem anderen Objekt wiederverwendet werden sollen und seine Methoden von Ihren mehreren Ansichten und Vermittlern anrufen. Oder Sie könnten es in Vorgängerklassen setzen und die einzelnen Klassen in beiden Ihre Ansicht und Ihren Vermittler erweitern.

Aus der Praxis wäre es, die ersteren zu tun und nicht diese.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top