代码之家  ›  专栏  ›  技术社区  ›  Davi Resio

放置下划线的管道底字母角度

  •  0
  • Davi Resio  · 技术社区  · 7 年前

    我要得到第一个字母并在底部加下划线。 获取第一个字母和转换的代码

    import { Pipe, PipeTransform } from '@angular/core';
    
    @Pipe({
      name: 'underlinePrimeiraLetra'
    })
    export class underlinePrimeiraLetraPipe implements PipeTransform {
      transform(value: string, args: any[]): string {
        if (value === null) return;
        return value.charAt(0).toUpperCase() + value.slice(1);
      }
    }
    

    import { Pipe, PipeTransform } from '@angular/core';
    
    @Pipe({
      name: 'underlinePrimeiraLetra'
    })
    export class underlinePrimeiraLetraPipe implements PipeTransform {
      transform(value: string, args: any[]): string {
        if (value === null) return;
        return "<u>" + value.charAt(0).toUpperCase() + "</u>" + value.slice(1);
      }
    }
    

    显示不正确:

    enter image description here

    2 回复  |  直到 7 年前
        1
  •  1
  •   user4676340 user4676340    7 年前

    你只能用CSS,用 ::first-letter

    p::first-letter {
      text-transform: capitalize;
      text-decoration: underline;
    }
    <p>underline & capitalize my first letter !</p>
        2
  •  1
  •   Sivakumar Tadisetti zeah    7 年前

    在HTML中

    <p *ngFor="let name of names" [innerHTML]="name | underlinePrimeiraLetra"></p>
    

    在管道文件中

    import { Pipe, PipeTransform } from '@angular/core';
    
    @Pipe({
      name: 'underlinePrimeiraLetra'
    })
    export class underlinePrimeiraLetraPipe implements PipeTransform {
      transform(value: string, args: any[]): string {
        if (value === null) return;
        return "<u>" + value.charAt(0).toUpperCase() + "</u>" + value.slice(1);
      }
    }
    

    Stackblitz

    更新:

    甚至这个 answer is being a little bit wrong and too complicated for the need 作为 说,我想让感兴趣的人知道如何对HTML进行sanatize

    下面是消毒代码

    import { Pipe, PipeTransform, SecurityContext } from '@angular/core';
    import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
    
    @Pipe({
      name: 'underlinePrimeiraLetra'
    })
    export class underlinePrimeiraLetraPipe implements PipeTransform {
    
      constructor(private _sanitizer: DomSanitizer) {}
    
      transform(value: string, args: any[]): string {
        if (value === null) return;
        return this._sanitizer.sanitize(SecurityContext.HTML, "<u>" + value.charAt(0).toUpperCase() + "</u>" + value.slice(1));
      }
    }