1
hasPrivilege(privilege: string): boolean {
let isPrivilege: PrivilegeModel[] = [];
let val : boolean;
if (this.loginService.privilegeList != null && this.loginService.privilegeList != undefined && this.loginService.privilegeList.getValue() != null) {
isPrivilege = this.loginService.privilegeList.getValue().filter(item => item.name === privilege);
return this.isPrivilege(isPrivilege);
} else {
let val = this.getUserRolesAndMenus(privilege);
console.log("after2" +val);
this.getUserRolesAndMenus().subscribe(result => {
let val = result.roles.filter((element: any) => {
return element.privileges.filter(function (item: any) {
return item.name === privilege
}).length != 0
}).length !=
return val; // can't return this.
},() =>{console.log("completed")})
}
}
如何从订阅返回布尔值。是否有任何解决方法来实现这一目标?如何从anuglar中的订阅返回布尔值2
这是使服务器的呼叫
getUserRolesAndMenus() : Observable<boolean> {
let headers = new Headers();
return this.http.get(ROLES_AND_MENUS + AppUtils.ID, { headers: headers })
.map(response => response.json())
.catch(this.handleError)
}
无法读取未定义的属性'subscribe'。错误而subscibing this.hasPrivilege(..)。认购(boolValue => { – user630209
你在哪里调用该方法又如何呢?也许尝试无“本”关键字... – Jonathan
否则它只是这样一来,从返回“如果“它工作正常,从”其他“它会给出错误。 – user630209