Angular 如何将不同参数发送到同一函数以进行显示/隐藏

Angular 如何将不同参数发送到同一函数以进行显示/隐藏,angular,Angular,我有三个密码输入框,点击按钮,我只需要使用fontawosme图标显示或隐藏密码类型(文本或密码) 下面是我尝试作为代码的代码: 文件 changePasswordType(类型){ 如果(类型=='oldPassword'){ this.showPassword=!this.showPassword; this.\u pwdType=this.showPassword?'text':'password' }else if(type==“newPassword”){ this.newPassw

我有三个密码输入框,点击按钮,我只需要使用fontawosme图标显示或隐藏密码类型(文本或密码)

下面是我尝试作为代码的代码:

文件

changePasswordType(类型){
如果(类型=='oldPassword'){
this.showPassword=!this.showPassword;
this.\u pwdType=this.showPassword?'text':'password'
}else if(type==“newPassword”){
this.newPassword=!this.newPassword;
this.\u pwdType=this.newPassword?'text':'password'
}否则{
this.confirmPassword=!this.confirmPassword;
this.\u pwdType=this.confirmPassword?'text':'password'
}

}
我还没有真正理解这个问题,但重构将是:

.ts中

showPassword  = false;
.html

<input [type]="showPassword ? 'password':'text'">
<button (click)="showPassword  = !showPassword  ">
    <i [ngClass]="{'far fa-eye-slash': !showPassword  , 'far fa-eye': showPassword  }"></i>
</button>


StackBlitz上的工作代码,

我还没有真正理解这个问题,但重构将是:

.ts中

showPassword  = false;
.html

<input [type]="showPassword ? 'password':'text'">
<button (click)="showPassword  = !showPassword  ">
    <i [ngClass]="{'far fa-eye-slash': !showPassword  , 'far fa-eye': showPassword  }"></i>
</button>



StackBlitz上的工作代码,

我添加了问题,我用输入编辑了解决方案。我还没查过泰特奈尔的订单。但这是给你主要的想法。你给出的解决方案工作得非常好,但是如果你想对其他两个输入应用相同的功能,那么我需要对每个我不想使用的输入使用不同的变量。我认为它们有不同的工作方式,你必须这样做。或者您可以拥有一个包含3个密码显示的对象。但对我来说,这是一样的。@vinuta:不,你不必,你可以使用现有变量
showPassword
confirmPassword
newPassword
,你已经在相应的章节
*ngIF
中使用了这些变量。我已经添加了这个问题,我已经用输入编辑了解决方案。我还没查过泰特奈尔的订单。但这是给你主要的想法。你给出的解决方案工作得非常好,但是如果你想对其他两个输入应用相同的功能,那么我需要对每个我不想使用的输入使用不同的变量。我认为它们有不同的工作方式,你必须这样做。或者您可以拥有一个包含3个密码显示的对象。但对我来说,这是一样的。@vinuta:不,你不必,你可以使用现有的变量
showPassword
confirmPassword
newPassword
,你已经在相应的章节
*ngIF
中使用了这些变量。你能复制一下堆栈上的Blitz,并通过查看你的代码共享这里的链接吗,我可以看到您对所有3种输入类型都使用了相同的“\u pwdType”,然后您正在更新
\u pwdType
的值。很明显,它将反映出引用它的位置。可能您需要为每个input@dreamweiver,我只是想知道,如果不使用不同的变量,这是不可能的,因为代码也会更长。你可以参考@wandrille的答案,他使逻辑简洁明了,事实上你甚至不需要可变的
\u pwdType
anymore@dreamweiver,这是代码的链接。您可以复制stackblitz,并在此处共享链接吗?只需查看您的代码,我就可以看到您对所有3种输入类型使用了相同的“\u pwdType”,然后您正在更新
\u pwdType
的值。很明显,它将反映出引用它的位置。可能您需要为每个input@dreamweiver,我只是想知道,如果不使用不同的变量,这是不可能的,因为代码也会更长。你可以参考@wandrille的答案,他使逻辑简洁明了,事实上你甚至不需要可变的
\u pwdType
anymore@dreamweiver,这是代码的链接