Javascript 如何使用基于条件的角度检测输入类型
我想在输入输入值时检测输入变化,如果输入值等于我的条件,它将隐藏/显示输入元素, 这就是我曾经尝试过的: ts文件 html文件 这是我的链接,Javascript 如何使用基于条件的角度检测输入类型,javascript,html,angular,typescript,input,Javascript,Html,Angular,Typescript,Input,我想在输入输入值时检测输入变化,如果输入值等于我的条件,它将隐藏/显示输入元素, 这就是我曾经尝试过的: ts文件 html文件 这是我的链接, 但当我有条件时,它就不起作用了。有什么建议或指导来解决这个问题吗?之所以发生这种情况,是因为从HTML传递的值是字符串 用有角度的方式处理它 <div *ngIf="!isNoCard"> <input [(ngModel)]="data" (ngModelChange)="onInputChange(data)" class=
但当我有条件时,它就不起作用了。有什么建议或指导来解决这个问题吗?之所以发生这种情况,是因为从HTML传递的值是字符串 用有角度的方式处理它
<div *ngIf="!isNoCard">
<input [(ngModel)]="data" (ngModelChange)="onInputChange(data)" class="input--2" type="number" >
</div>
另外,请注意,我之所以将type=number,是因为您希望函数中的值为number。我想您是在比较字符串类型的inputValue与数字7777。 即使您已将inputValue参数的类型指定为number,但如果您尝试检查类型,您会发现它是字符串
console.log(typeof inputValue);
在这种情况下,一个简单的解决方案是通过+运算符、parseInt等技术将字符串转换为数字
如果我试着做以下事情,它会起作用-
if (+inputValue === 7777) {
this.isNoCard = true;
}
我希望这会有帮助。您已经使用===运算符来检查等式,这里将返回false。
这是因为输入值的类型为string,7777是一个数字。
您可以对值进行类型转换,也可以使用==运算符进行转换
您可以简单地使用以下代码:
onInputChange(inputValue: number): void {
if (inputValue == 7777) {
this.isNoCard = true;
}
==运算符同时检查值和类型,而==运算符仅检查值
if (+inputValue === 7777) {
this.isNoCard = true;
}
onInputChange(inputValue: number): void {
if (inputValue == 7777) {
this.isNoCard = true;
}