robotlegs: Ho 2 punti di vista e mediatori che hanno in comune 1 cosa come posso farlo asciugare?

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

  •  29-09-2019
  •  | 
  •  

Domanda

Ho 2 viste che mostrano le liste che quindi utilizza un mediatore per ottenere i dati. ma voglio in qualche modo ad asciugare in modo non devo ripetere la mia auto 2 volte per la stessa cosa. come faccio a fare?

EDIT1 (codice):

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

// poi nel mio mediatore

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

tutto questo per una vista-mediatore. ora ho 2 view-mediatori che stanno facendo questi compiti. Come farli asciugare?

Soluzioni che ho: fare un po 'contenente l'elenco a discesa con un mediatore che è in attesa per l'evento. nelle grandi componenti che stanno ascoltando per un segnale in vista di questo piccolo componente. niente di più. sembra abbastanza bene, ma non credo che sia così grande

È stato utile?

Soluzione

Quindi non v'è la funzionalità su entrambi i punti di vista ei mediatori che vorreste non ripetere?

Si potrebbe mettere il codice che si desidera riutilizzare in un altro oggetto e chiamare i suoi metodi dai vostri viste multiple e mediatori. Oppure si potrebbe mettere in antenato classi ed estendere ciascuna di queste classi sia nella vostra vista e il vostro mediatore.

Le migliori pratiche sarebbe quella di fare il primo e non il secondo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top