0
有一個指令,其中,下面的代碼匹配,如果結果並隱藏內容給用戶與另一個角色如何在ts中匹配變量和html中指令的值?
import {
Directive,
Input,
OnInit,
TemplateRef,
ViewContainerRef
} from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { User, UserService, Profile, ProfilesService } from '../shared';
@Directive({ selector: '[userRoles]' })
export class UserRolesDirective implements OnInit {
constructor(
private templateRef: TemplateRef<any>,
private userService: UserService,
private viewContainer: ViewContainerRef,
private route: ActivatedRoute,
private profilesService: ProfilesService
) {}
profile: Profile;
roles: string;
currentUser: User;
ngOnInit() {
this.route.data.subscribe(
(data: {profile: Profile}) => {
this.profile = data.profile;
this.userService.currentUser.subscribe(
(userData: User) => {
this.currentUser = userData;
console.log(this.currentUser.roles);
if (this.currentUser.roles ==) {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}
);
}
);
}
@Input() set userRoles(roles: string) {
this.roles = roles;
}
}
有HTML代碼,其中I輸出該指令
<div class="col-sm-12" *userRoles="['Admin']">
<div class="feed-toggle mt-3">
<ul class="nav nav-pills outline-active">
<li class="nav-item">
<a class="nav-link"
[ngClass]="{'active': listConfig.type === 'feed'}"
(click)="setListTo('feed')">
的值夥計們幫助,我該如何匹配this.currentUser.roles和userRoles結果 Indexof不工作,或者我做錯了什麼。
!this.userRoles || this.userRoles.indexOf(this.currentUser.roles) != -1
PS:如果我在頁面上有多個指令,系統會工作嗎?
儘管此代碼可能會回答問題,但提供有關如何解決問題和/或爲何解決問題的其他上下文會提高答案的長期價值。 – Badacadabra