我有 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 个视图调解器正在执行这些任务。如何让它们干燥?
我有的解决方案:制作一个包含下拉列表的小视图,其中包含一个正在监听事件的中介。在大组件中,他们正在从这个小组件的角度收听信号。而已。看起来还不错,但我认为不是那么好