Controller — 控制器
控制器管理当前模块的所有Action,在相应的Action中为区域装载视图脚本。
Controller
使用方法:Buz.Controller。开发人员通过该方法来为模块配置Action,并控制视图装载逻辑。
该方法必须配置actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
export default Buz.Controller{
actions: {
“”: ) => {
App.regions.content.show”areas/Demo/index/Index”);
},
“index2”: ) => {
App.regions.content.show”areas/Demo/index/Index2″);
},
“index3″:”commonFunction”,
“index4″:”commonFunction”
},
commonFunction:functionparams){
App.regions.content.show”areas/Demo/index/Index3″,params.id);
}
});
action支持两种形式,通常是Function类型,也可以是String类型,若多个Action的逻辑基本相同,可以设置为方法名称(字符串), 在实际匹配时会在当前控制器中寻找该方法作为Action执行方法。
其中每个action执行时都会传入fragment.params,详见Router中的地址碎片信息。
BaseController
BaseController挂载在App中,使用方式App.controller,详见应用池章节信息。
公开方法
match
该方法是内部方法,通过Router进行驱动,通过该方法来匹配对应的Action。
参数名作用类型默认值备注handler当前控制器Object Buz.Controller传入配置信息fragment地址碎片Object 详见应用池地址碎片广播事件 事件名称作用参数备注before:match匹配路由前执行{ fragment: 地址碎片, handler: 当前控制器配置信息 }若该事件返回false则终止匹配after:match匹配路由后执行{ fragment: 地址碎片, handler: 当前控制器配置信息, isBreak: 是否是被终止 }终止条件:
1.before:match强制终止
2.控制器匹配失败,未找到Function类型的执行程序
3.没有找到action
https://github.com/ZhangChuanHui/BUZ