push()无法显示字符串

时间:2018-04-08 17:57:56

标签: javascript angular typescript

我正在使用Angular进行密码强度检查打字稿代码。一切都很好,除了"推"无法显示消息。如果我使用" =",那么工作正常,例如" this.message =' Hello'"。但是我在使用" this.messages.push(' xxxx')"时无法弄清楚,它没有显示任何内容。有人请帮忙吗?

以下是我的ts代码的一部分:

 export class PasswordComponent implements OnInit {
      password = '';
      message = 'Your message goes here';
      messages: string[] = ["Hello"];

      constructor() { }

      checkPassword(password: string) {
        let pw:string = this.password;
        this.c_length();
        this.c_numberCnt();
      }

      c_length(): void {
        if ( this.password.length <= 1) {
          this.messages.push('The length of the password is too short');
        }
      }

      c_numberCnt(): void {
        let test;
        let regex = /\d/g;
        test=regex.test(this.password);
        if (!test) {
          this.messages.push('At lease one number');
        }
      }

      c_metaCnt(): void {
        let tt:boolean;
          tt = !/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g.test(this.password);
          if (!tt) {
            this.messages.push('At lease one special character');
          }
      }

      c_upperCnt(): void {
       if (this.password.toLowerCase()==this.password) {
          this.messages.push('At lease one Uppercase');
       }
      }

      c_lowerCnt(): void {
        if (this.password.toUpperCase()==this.password) {
          this.messages.push('At lease one lowercase');
       }
      }

  resetPassword() {
    this.password = '';
  }

}

1 个答案:

答案 0 :(得分:2)

因为 messages 是一个数组,所以你需要使用ngFor迭代colleciton,所以在你的模板中使用它如下

<ul>
    <li *ngFor="let messageObj of messages">
      {{ messageObj }}
    </li>
</ul>