如何使用显示/隐藏密码在离子2中创建登录

Joc*_*acx 11 passwords login show-hide typescript ionic2

我想用离子2创建这样的设计 - > https://codepen.io/Floky87/pen/bVopyZ

这是一个具有隐藏/显示密码的登录功能.

这是我的HTML代码

<ion-header>

  <ion-navbar>
    <ion-title>Login</ion-title>
  </ion-navbar>

</ion-header>


<ion-content padding>
<ion-item>
      <ion-label floating primary>Username</ion-label>
      <ion-input type="text"></ion-input>
</ion-item> 
<ion-item>
      <ion-label floating primary>Password</ion-label>
      <ion-input type="password"></ion-input>
      <ion-icon name="eye" item-right (click)="showHide()"></ion-icon>
</ion-item> 
</ion-content>
Run Code Online (Sandbox Code Playgroud)

这是结果 - > http://prntscr.com/gz12xg

这是我的.ts代码

import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';

@Component({
  selector: 'page-login',
  templateUrl: 'login.html',
})
export class LoginPage {

  constructor(public navCtrl: NavController, public navParams: NavParams) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad LoginPage');
  }
  showHide() {
    console.log('hi');
  }

}
Run Code Online (Sandbox Code Playgroud)

问题是,眼睛图标不可点击.没有来自控制台的日志.

当我点击眼睛图标时,它只允许我从密码字段输入.

有人可以帮帮我吗?我只想让眼睛图标可点击.

Aza*_*lvi 31

您可以在.ts文件中执行以下操作来编写此代码

 passwordType: string = 'password';
 passwordIcon: string = 'eye-off';

 hideShowPassword() {
     this.passwordType = this.passwordType === 'text' ? 'password' : 'text';
     this.passwordIcon = this.passwordIcon === 'eye-off' ? 'eye' : 'eye-off';
 }
Run Code Online (Sandbox Code Playgroud)

在你.html写这个

<ion-item>
    <ion-label floating>Password</ion-label>
    <ion-input formControlName="password" [type]="passwordType" clearOnEdit="false"></ion-input>
    <ion-icon item-end [name]="passwordIcon" class="passwordIcon" (click)='hideShowPassword()'></ion-icon>
</ion-item>
Run Code Online (Sandbox Code Playgroud)

这将是你的.scss代码.根据您的需要改变

.passwordIcon{
   font-size:2rem !important;
   position: relative !important;
   top: 22px !important;
   margin: 0 auto !important;
}
Run Code Online (Sandbox Code Playgroud)

  • 在ionic版本4中,您应该使用`ion-icon slot =“ end”`而不是`ion-icon item-end` (5认同)
  • 最佳答案...坚持下去! (3认同)

Dav*_*vid 7

您只需将其包装在一个按钮中即可点击:

<ion-item>
  <ion-label floating primary>Password</ion-label>
  <ion-input type="password"></ion-input>
  <button ion-button clear item-end (click)='showHide()' style="height:32px;">
    <ion-icon name="eye" style="font-size:32px;"></ion-icon>
  </button>
</ion-item>
Run Code Online (Sandbox Code Playgroud)

使用样式属性控制图标的大小.