canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return new Promise((resolve, reject) => {
this.securityService.securityActions().subscribe(
data => {debugger;
if(data = this.authorized.find(k => k=='AGREEMENTS_VIEW','AGREEMENTS_INSERT_UPDATE')){
resolve(true);
}
if(data != this.authorized){
resolve(false);
}
},
error => {
Utils.notifyErrors(error, this.notificationsService);
}
)
});
}
如果数据包含“授权”的某些项目,我想设置为true。
授权的形式如下:
authorized = [
'AGREEMENTS_VIEW',
'PROSPECTS_VIEW',
'AGREEMENTS_INSERT_UPDATE',
'PRODUCTS_INSERT_UPDATE',
'PROSPECTS_INSERT_UPDATE',
'DOCUMENTS_VIEW',
'DOCUMENTS_INSERT_UPDATE',
];
例如,如果数据包含“ AGREEMENTS_VIEW”,则将其设置为true。
现在如果我在K上设置2的值不起作用
答案 0 :(得分:0)
使用some
,如果条件匹配,则返回true。
return arrayOne.some(itemOfArrayOne => arrayTwo.includes(itemOfArrayOne));
您可以将includes
替换为indexOf(XXX) !== -1
。
答案 1 :(得分:0)
似乎您有语法错误:
data === this.authorized.find(k => k=='AGREEMENTS_VIEW')
//---^^^-----here