如果输入值已存在于数组中,则检查 Angular HTML 模板

约瑟夫

我知道这种问题已经被问过好几次了,但是在检查了所有答案之后我还没有找到解决方案。在我的 HTML 模板中,我想检查输入值是否已存在于数字数组中。如果存在,则会显示一条消息。我想用“indexOf”方法或“includes”来解决这个问题。但是,这不起作用。看看这个stackblitz

HTML模板:

Numbers registered: {{ numbers }}
<form>
  <label for="number" class="absolute left-0 -top-5 text-green-950 text-sm transition-all">number<span class="text-red-500">*</span></label>
  <input id="number" #number="ngModel" (ngModel)="number" name="number" minlength="4" maxlength="4" required  placeholder="number" />

  <p class="text-sm px-3 text-red-500" *ngIf="!number.valid && number.touched">Enter exactly 4 digits!</p>
  <p class="text-sm px-3 text-red-500" *ngIf="numbers.includes(number) && number.touched">This number already exists!
  </p>
</form>

TS文件:

import { Component, VERSION } from '@angular/core';

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
name = 'Angular ' + VERSION.major;

numbers:any = [1000,1100,1200,1300,1400];
}
埃利塞奥

您需要使用 [(ngModel)]="number",向 .ts 添加变量编号,不要使用与编号相同的模板变量名称并搜索编号转换为 int

    <!--now the template variable is numberID-->
    <input id="number" #numberID="ngModel" 
        <!--see the "bannana" [(  )] -->
        [(ngModel)]="number" 
        name="number" minlength="4" maxlength="4" required  placeholder="number" />
    
      <!--you ask about includes(+number),see the "+"-->
      <p class="text-sm px-3 text-red-500" *ngIf="numbers.includes(+number) &&
            <!--and numberID.touched-->
            numberID.touched">
           This number already exists!
      </p>

在.ts

number:number=0;

注意:我在 .html 中添加了注释(删除它以工作)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章