首页 > 解决方案 > 如何检查Angular 7中两个不同的子下拉菜单是否具有相同的值?

问题描述

我有两个不同的下拉列表(将 a 实现为 cihld 组件),其中包含相同的数据。

如果这两个选定的值相同,我想显示 mat-error 。在 mat-error 标签上,我调用了一个函数:

areValuesTheSame() {
  if (this.form.controls['value1'].value && this.form.controls['value2'].value) {
      return this.form.controls['value1'].value === this.form.controls['value2'].value;
}

我以为我会得到结果真/假,根据 mat-error 我会这样做:

<mat-error *ngIf="areValuesTheSame()">Selected values has to be the same!</mat-error>

但问题是,它不断地为我返回值,而不是一次返回(真或假)。

如果我尝试在 console.log 中检查它,控制台会打印 n 次结果(就像一个无限循环)。

我在这里做错了什么?

标签: angularangular7

解决方案


实际上,您的代码没有任何问题。它是 Angular 的工作原理。它会自动运行更改检测,并在检查更改时运行您的功能。

检查这个:angular2 - 当我从模板内的 Angular 2 类调用方法时的无限循环


推荐阅读