Ibm内容导航器-等待服务回调返回值,以在全局操作中实现isVisible()



我使用服务从服务器端获取当前用户AD列表

我在全局工具栏上创建了一个新的动作,如果用户不属于相关的广告,我会试图隐藏该动作

我正在使用Action isVisible((函数,但我不能让isVisible等待服务答案返回,我做错了什么?


define([ "dojo/_base/declare","dojo/_base/lang", "ecm/model/Request", "ecm/model/Action","ecm/widget/dialog/AddContentItemDialog"],
function(declare,lang,
Request,Action,AddContentItemDialog) {
return declare("OpenEntryTemplatePluginDojo.OpenMyEntryTemplateAction",[ Action ], {

isUserBelogToSpecificADgroup:null,
isVisible:function(repository,listType){

if(!this.isUserBelogToSpecificADgroup){
Request.invokePluginService("OpenEntryTemplatePlugin","CheckIfCurrentUserHaveSpecificADgroupService",{//to know if the user is belong to the relevant AD group 

requestCompleteCallback : dojo.hitch(this, function(response) {                      
if(response.success) {return response.success;}
else {
this.isUserBelogToSpecificADgroup = false;
return this.isUserBelogToSpecificADgroup ;

}

})

});
}else{
return false;
}

},```

方法invokePluginService()是异步的,不会等待请求完成。您可以使用同步方法invokePluginServiceSynchronous()来代替此方法。这将等待请求完成并直接返回响应:

var response = Request.invokePluginServiceSynchronous("OpenEntryTemplatePlugin",
"CheckIfCurrentUserHaveSpecificADgroupService",{} );

最新更新