标识符 'authService' 引用组件的私有成员
Identifier 'authService' refers to a private member of the component
真不知道是哪里出了问题
服务代码:
import { Injectable } from '@angular/core';
@Injectable()
export class AuthService {
logout() {
localStorage.removeItem('token');
}
}
组件代码:
import { AuthService } from './../services/auth.service';
export class HomeComponent {
constructor(private authService: AuthService) {}
}
并且在 HTML 代码的末尾:
<h1>
Home Page
</h1>
<p *ngIf="authService.isLoggedIn">
Welcome {{ authService.currentUser.name }}
</p>
<ul>
<li *ngIf="authService.isLoggedIn() && authService.currentUser.admin">
<a routerLink="/admin">Admin</a>
</li>
<li *ngIf="authService.isLoggedIn()">
<a routerLink="/login">Login</a>
</li>
<li *ngIf="authService.isLoggedIn()" (click)="authService.logout()">
<a>Logout</a>
</li>
</ul>
我对 HTML 代码的问题是 authService
。感谢阅读。
您在 html 模板中使用的 class 中定义的所有属性应为 public。您已将 authService 定义为 private 并且它正在抱怨这一点。
为了解决这个问题你必须做到 public:
constructor(public authService: AuthService) { }
真不知道是哪里出了问题
服务代码:
import { Injectable } from '@angular/core';
@Injectable()
export class AuthService {
logout() {
localStorage.removeItem('token');
}
}
组件代码:
import { AuthService } from './../services/auth.service';
export class HomeComponent {
constructor(private authService: AuthService) {}
}
并且在 HTML 代码的末尾:
<h1>
Home Page
</h1>
<p *ngIf="authService.isLoggedIn">
Welcome {{ authService.currentUser.name }}
</p>
<ul>
<li *ngIf="authService.isLoggedIn() && authService.currentUser.admin">
<a routerLink="/admin">Admin</a>
</li>
<li *ngIf="authService.isLoggedIn()">
<a routerLink="/login">Login</a>
</li>
<li *ngIf="authService.isLoggedIn()" (click)="authService.logout()">
<a>Logout</a>
</li>
</ul>
我对 HTML 代码的问题是 authService
。感谢阅读。
您在 html 模板中使用的 class 中定义的所有属性应为 public。您已将 authService 定义为 private 并且它正在抱怨这一点。
为了解决这个问题你必须做到 public:
constructor(public authService: AuthService) { }