サービスから設定されたプライベート変数を参照するstatic getメソッドを持つクラスがあります。ここまで私がこれまで持っていたことはありますが、私は循環的な論理に惑わされています。は、角度2の静的メソッドからプライベート変数を参照しています
@Injectable()
export class UserPermissions {
private static _userPermissions: PermissionsModel;
private static get userPermissions(): PermissionsModel {
if (!UserPermissions._userPermissions) {
UserPermissions.setPermissions();
}
}
private static set UserPermissions() {
let id = SessionStorage.getItem(SS_USER_ID);
// How do I setup profileService?
// Normally, I would have a constructor that would be:
// constructor(private profileService: ProfileService) {}
// and the class would have @Component({ providers: [ProfileService] })
profileService.getPermissions(id).subscribe(
permissions => UserPermissions._userPermissions = permissions;
);
}
public static hasPermissions(permissionCode: string): boolean {
let index = UserPermissions.userPermissions().permissions
.findIndex(permission => permission.code == permissionCode);
return index >= 0;
}
}
「静的」は使用しないでください。 –
**あなたの名前の下にいくつかの欠陥を持つ不眠の夜があります。 – Aravind