javascript - 如何选择在ngIf中调用的函数?

标签 javascript html angular typescript

我想根据变量的值调用 this.loggedInService.isLoggedIn 方法:login()logout()

  • 如果变量 !this.loggedInService.isLoggedIn 的值那么 调用 login()
  • 如果 !this.loggedInService.isLoggedIn 则此方法 logout()

如何在 app.html 中正确实现它?

模板:

 <li class="nav-item">
    <a class="btn btn-outline-success" 
      [class.btn-outline-success]="!this.loggedInService.isLoggedIn"
      [class.btn-outline-danger]="this.loggedInService.isLoggedIn" 
      ngIf ....>
      {{this.loggedInService.isLoggedIn ? 'Exit' : 'Enter'}}
    </a>
  </li>

app.ts:

export class AppComponent implements OnInit {
  constructor(public loggedInService: LoggedinService, public router: Router) {}

  ngOnInit() {}

  login(): void {
    this.loggedInService.login().subscribe(() => {
      if (this.loggedInService.isLoggedIn) {
        let redirect = this.loggedInService.redirectUrl
          ? this.loggedInService.redirectUrl
          : '/gallery';
        this.router.navigate([redirect]);
      }
    });
  }

  logout(): void {
    this.loggedInService.logout();
  }
}

最佳答案

你可以像这样使用三元运算符来运行基于状态的函数

<li (click)="this.loggedInService.isLoggedIn ? logout() : logIn()" >
{{this.loggedInService.isLoggedIn ? logout : logIn}}
</li>

关于javascript - 如何选择在ngIf中调用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52814739/

相关文章:

javascript - 如果动态生成的 html 的 div 为空,则隐藏元素

javascript - jQuery - 如何测试链接是否锚定在同一页面上?

javascript - 如何使用砌体设置无限滚动?

html - 如果我使用 "position:fixed;"我可以让位置在右边吗?

javascript - typescript 代码 : How to calculate Totale=Sum(Subtotale) and price* quantita = subtotale Angular5

javascript - 滚动时导航栏样式闪烁

javascript - 包括 Jotted 的 Codemirror 插件和 Angular gulp

javascript - 将 html 表格导出为 pdf

angular - 在Varnish代理后面的Angular 5.6.0中设置文档根目录

Angular 通用预渲染导致 301 重定向