typescript 用于在输入中显示/隐藏密码的Angular7指令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 用于在输入中显示/隐藏密码的Angular7指令相关的知识,希望对你有一定的参考价值。

import {Directive, ElementRef} from '@angular/core';

@Directive({
  selector: '[appInputPassword]'
})
export class InputPasswordDirective {

  private _shown = false;

  private eyeTemplateShow = '<div class="icon brand-background" style="-webkit-mask: url(/assets/svg/view.svg) no-repeat center; mask: url(/assets/svg/view.svg) no-repeat center; width: 30px; height: 30px; float: right; position: relative; margin-top: -31px; right: 10px; cursor:pointer"></div>'
  private eyeTemplateHide = '<div class="icon brand-background" style="-webkit-mask: url(/assets/svg/hide.svg) no-repeat center; mask: url(/assets/svg/hide.svg) no-repeat center; width: 31px; height: 30px; float: right; position: relative; margin-top: -31px; right: 10px; cursor:pointer"></div>'

  constructor(private el: ElementRef) {
    this.setup();
  }

  toggle(span: HTMLElement) {
    this._shown = !this._shown;
    if (this._shown) {
      this.el.nativeElement.setAttribute('type', 'text');
      span.innerHTML = this.eyeTemplateHide;
    } else {
      this.el.nativeElement.setAttribute('type', 'password');
      span.innerHTML = this.eyeTemplateShow;
    }
  }

  setup() {
    const parent = this.el.nativeElement.parentNode;
    const span = document.createElement('span');

    span.innerHTML = this.eyeTemplateShow;
    span.addEventListener('click', (event) => {
      this.toggle(span);
    });
    parent.appendChild(span);
  }
}

以上是关于typescript 用于在输入中显示/隐藏密码的Angular7指令的主要内容,如果未能解决你的问题,请参考以下文章

WordPress登录框显示/隐藏输入的密码

Axure RP9 如何借助动态面板实现密码输入框字符显示/隐藏切换

如何在 Flutter 中完全隐藏密码输入?

[译]TextField/TextFormField 如何显示/隐藏密码

一起Talk Android吧(第四百六十四回:给EditText添加眼睛图片来实现显示和隐藏密码功能)

Android 输入密码 隐藏显示输入的字符串