在AWC中有很多的soa服务和很多的servicejs文件可以提供给我们使用,比如常用的有"soa/kernel/clientDataModel",soa/kernel/soaService,"js/appCtxService"等等,需要查看soa服务中的方法可以使用genSoaApi.cmd生成awc的api文件。
ctx对象在开发过程当中是很重要的,在js文件中可以通过appCtxService去获取,在json文件中可以直接进行使用,它包含了awc当前会话关联的信息,例如:选中的对象属性,页面的信息等
- 下面这张官方文档的图片:你品,你细品
举两个分别在json文件中和js文件中使用获取ctx对象的小例子:
1:在胖客户端我们可以通过命令抑制对菜单的显示隐藏进行控制,在awc中我们可以通过ctx对象获取相关属性去对菜单进行显示和隐藏
例如在下面的json文件中通过ctx.selected.type(选中对象类型)判断command菜单是否显示
{
"commandHandlers": {
"command2Handler": {
"id": "command2",
"action": "activatecommand2",
"activeWhen": true,
"visibleWhen": {
"condition": "conditions.command2when"
}
}
}
"conditions": {
"command2when": {
"expression": "ctx.selected.type==='ItemRevision'"
}
}
}
2:在js文件中通过appCtxService获取ctx对象,先在js文件中引入'appCtxService'服务,再通过appCtxService获取ctx对象
var appCtxService = null;
//通过appCtxService获取ctx对象
var ctx=appCtxService.ctx;
app.factory('myTestService', ['$q', 'appCtxService', function ($q, CtxSer) {
_$q = $q;
appCxService= CtxSer;
return exports;
}]);