header.component.html
<ng-container *ngFor="let headerMenu of headerMenus">
<li *ngIf="headerMenu.ngif">
<a (click)="onClick(headerMenu.menu)" [class]="headerMenu.menu">
<img [src]="headerMenu.src" [alt]="headerMenu.menu">
<p>{{ headerMenu.menu | uppercase }}</p>
</a>
</li>
</ng-container>
headerMenu.service.ts
public headerMenus: HeaderMenu[] = [
// menu, srcURL, ngif
new HeaderMenu('service', 'assets/img/service.png', true),
new HeaderMenu('pricing', 'assets/img/pricing.png', true),
new HeaderMenu('source', 'assets/img/source.png', true),
new HeaderMenu('about', 'assets/img/about.png', true),
new HeaderMenu('user', 'assets/img/user.png', 'isLoggedIn'),
new HeaderMenu('login', 'assets/img/login.png', 'isLoggedIn'),
];
我试图将"isLoggedIn“变量作为headerMenu.ngif传递给ngif。我期望"isLoggedIn“作为一个变量工作,这样就可以根据登录状态打开和关闭它。
但它实际做的是将其识别为字符串"isLoggedIn“。
有没有办法把它作为一个变量来传递呢?
发布于 2018-06-09 06:04:04
您的问题是传递字符串文字'isLoggedIn‘。在声明新HeaderMenu的headerMenu.service.ts文件中,isLoggedIn是一个局部变量类变量,还是在哪里声明的?如果它是类成员,您可以通过以下方式访问它:
new HeaderMenu('login', 'assets/img/login.png', this.isLoggedIn)
或者如果它来自注入到您的类中的数据服务,如下所示:
constructor(public dataService:DataService){}
然后你可以像这样访问它:
new HeaderMenu('login', 'assets/img/login.png', dataService.isLoggedIn)
https://stackoverflow.com/questions/50311315
复制相似问题