javascript - 标识符 'authService' 指的是组件的私有(private)成员

标签 javascript html angular angular2-jwt

我真的不知道还有什么问题。

服务代码:

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 模板中使用的类中定义的所有属性都应该是公共(public)。您已将 authService 定义为 private 并且它正在提示这一点。

为了解决问题,您必须将其公开:

constructor(public authService: AuthService) { }

关于javascript - 标识符 'authService' 指的是组件的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51454076/

相关文章:

javascript - 语法错误。帮助一个小的 JS 片段 :(

javascript - 如何禁用单选按钮但不禁用它的标签?

php - 我可以在 WAMP 服务器上运行 Angular 6 项目吗?

javascript - PatchValue 或 setValue with formGroup 更多 formArray 和 formGroup

angular - 尝试删除或更改 Angular 谷歌地图中 <agm-direction> 默认标记的图标

javascript - 是否可以通过 CDN 在仅限 ES5 的环境中使用 VueJs 3?

javascript - 无法在 jquery 代码 ('#' + 添加上使用方法

php - 请求准备文件并返回路径,准备好后允许用户下载

html - 使用 css-transforms 为遇到定位问题的所有浏览器创建掩码

javascript - 如何在没有 jQuery 的情况下在 Javascript 中添加和删除类