0
私はangular2プロジェクトで仕事をしています。私たちのauthガードコードの1つの問題です。angle2でコールバックまたはobservableを使用する方法は?
私はスクリプトが呼び出し可能な関数の結果を待っていないと思います。 「は定義されていません。」の結果変数コンソール。
だから私を助けてください。
1)のauth-guard.service.ts
@Injectable()
export class RoutePermissionGuard implements CanActivate{
private menuType:any;
constructor(
private router: Router,
private _shared:SharedService
) { }
// return only true or false
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):boolean {
let url: string = state.url;
let slug = route.data['slug'];
let type = route.data['type'];
if(slug !== ""){
this._shared.menuList.subscribe(menus =>{
let result = this.getMenuOgj(menus,slug,type);
console.log("result: "+ result); // Get undefine varibale
});
}
return true;
}
// This is recursive function and my first if condition is true then my second if is return true or false
getMenuOgj(menus, menuSlug, type):boolean { // return only true or false
menus.forEach((menu) =>{
if(menu.menu_slug === menuSlug){
if(type==="view"){
this.menuType = menu.view;
}else if(type==="edit"){
this.menuType = menu.edit;
}
if (this.menuType===1 || this.menuType==='1' || this.menuType===true) {
return true;
}else{
return false;
}
}
this.getMenuOgj(menu.submenu, menuSlug, type);
});
}
}
のより多くの何をしようとしたか、何を説明してください –
以上を説明working..pleaseありません達成しようとする。私はあなたが返されることを期待しているか分からない。 –
"getMenuOgj"は再帰関数で、最初のif条件が真、次に2番目のifがtrueまたはfalseを返します –