单击更改按钮上的文本

时间:2019-02-14 07:14:57

标签: javascript angular typescript angular7

我正在使用 Angular 7 ,并且我希望每次更改按钮上的文字单击它应该是登录还是注销

我将我的代码放在下面:

ts文件:

export class HeaderComponent implements OnInit {

  text: any;

  constructor() {
    this.loadDataFromApi();
  }

  ngOnInit() {
      if (this.token == null) {
        this.text == 'login';
        alert(this.text);

      } else if (this.token) {
         this.token == 'logout';
         alert(this.text);
      }
   }

}

警报未定义即将出现

html文件:

 <button type="button"> {{text}}</button>

5 个答案:

答案 0 :(得分:3)

您正在使用比较运算符(==)而不是赋值运算符(=)。更改它,它应该可以正常工作。像这样:

export class HeaderComponent implements OnInit {

  text: any;

  constructor() {}

  ngOnInit() {
    this.loadDataFromApi();
    if (this.token) {
      this.text = 'logout';
      alert(this.text);
    } else {
      this.text = 'login';
      alert(this.text);
    }
  }
}

PS: this.loadDataFromApi本质上很可能是async,此调用下面的代码将在不等待的情况下被执行,从而导致意外行为。因此,在大多数情况下,您会在警报中收到login

答案 1 :(得分:2)

您应该使用赋值=运算符而不是比较==运算符

this.text ='login';

 export class HeaderComponent implements OnInit {

    text: any;
    constructor( );

        this.loadDataFromApi();
      }
    ngOnInit() {

        if(this.token == null){
          this.text ='login';
          alert(this.text);

        } else if (this.token){
          this.token = 'logout';
          alert(this.text);

        }
    }

答案 2 :(得分:1)

try,而不是 _mongoCollection.Find(c => c.CleanedNames.Contains(stringCleaned)).ToList(); 尝试this.token == null(这将检查undefiend以及null并建议使用的方式)

!this.token

答案 3 :(得分:1)

else之后,您将修改this.token,而不是this.text

此外,您应该使用=而不是==来分配this.text。像这样更改代码:

ngOnInit() {
    if (this.token === null) {
        this.text = 'login';
        alert(this.text);

    } else if (this.token) {
        this.text = 'logout';
        alert(this.text);
    }
}

PS token变量在哪里定义?在您的.ts文件中看不到它。

答案 4 :(得分:0)

基本上,您要检查是否有身份验证令牌,然后将文本作为注销帐户,而令牌不是他们的显示登录名。

在您看来,此令牌未定义为默认值

这就是为什么警报中显示未定义的原因。

两个条件都不起作用

应该像

if (this.token) {//The user is logged in so log out should show.
    this.text = 'logout';
    alert(this.text);

  } else {//The user is logged out  in so login should show
     this.token == 'logout';
     alert(this.text);
  }

请先检查this.token的值,是否已设置该值。