Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用基于条件的角度检测输入类型_Javascript_Html_Angular_Typescript_Input - Fatal编程技术网

Javascript 如何使用基于条件的角度检测输入类型

Javascript 如何使用基于条件的角度检测输入类型,javascript,html,angular,typescript,input,Javascript,Html,Angular,Typescript,Input,我想在输入输入值时检测输入变化,如果输入值等于我的条件,它将隐藏/显示输入元素, 这就是我曾经尝试过的: ts文件 html文件 这是我的链接, 但当我有条件时,它就不起作用了。有什么建议或指导来解决这个问题吗?之所以发生这种情况,是因为从HTML传递的值是字符串 用有角度的方式处理它 <div *ngIf="!isNoCard"> <input [(ngModel)]="data" (ngModelChange)="onInputChange(data)" class=

我想在输入输入值时检测输入变化,如果输入值等于我的条件,它将隐藏/显示输入元素, 这就是我曾经尝试过的:

ts文件

html文件

这是我的链接,
但当我有条件时,它就不起作用了。有什么建议或指导来解决这个问题吗?

之所以发生这种情况,是因为从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;
    }