angular - 如何检查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 次结果(就像一个无限循环)。
我在这里做错了什么?
解决方案
实际上,您的代码没有任何问题。它是 Angular 的工作原理。它会自动运行更改检测,并在检查更改时运行您的功能。
推荐阅读
- dart - 如何使用 Flutter 实现 UserAccountsDrawerHeader 小部件的 AccountDetail 以与 Gmail 应用程序一样显示?
- ruby - ruby 方法定义中关键字参数的散列上的 splat 运算符
- jasmine - 如何监视内部具有 Promise 且不返回结果但处理响应本身的函数?
- c++ - Code::Blocks 在执行嵌套循环时返回 -10737741819 (0xC0000005)
- elasticsearch - 如果日志中的文档时间字段早于文档中的当前时间字段,则 Logstash 忽略文档更新
- python - 为 python 脚本制作 Web 界面的最佳方法
- python - Cassandra:根据非主键删除记录 - Python
- angular - 如何在 GoDaddy 上托管 Angular-CLI 项目?
- node.js - 如何使用 socket.io 将 tcp 消息发送到远程服务器
- javascript - 如何相对于底层图像绝对定位形状元素?