Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.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_Angular_Typescript - Fatal编程技术网

Javascript 要放置下划线的管道底部字母有角度

Javascript 要放置下划线的管道底部字母有角度,javascript,angular,typescript,Javascript,Angular,Typescript,我想得到第一个字母,并在底部加下划线。 获取第一个字母并进行转换的代码 import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'underlinePrimeiraLetra' }) export class underlinePrimeiraLetraPipe implements PipeTransform { transform(value: string, args: any[]): string {

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

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);
  }
}
从'@angular/core'导入{Pipe,PipeTransform};
@烟斗({
名称:“UnderlinePrimeraletra”
})
导出类UnderlinePrimeRaletRapipe实现PipeTransform{
转换(值:字符串,参数:任意[]):字符串{
if(value==null)返回;
返回“+value.charAt(0.toUpperCase()+”+value.slice(1);
}
}
显示不正确:


在HTML中

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

我还更新了HTML中的Stackblitz

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

我还更新了Stackblitz

您只能使用CSS,使用
::第一个字母
选择器:

p::第一个字母{
文本转换:大写;
文字装饰:下划线;
}

在我的第一个字母下面划线并大写

您只能使用CSS,使用
::第一个字母
选择器:

p::第一个字母{
文本转换:大写;
文字装饰:下划线;
}


在我的第一个字母下面划线并大写

您的意思是在第一个字符下面划线?像
标签做什么?是的,但我试着做,但不工作。。。让value2=
${value.charAt(0)}
返回value2+value.slice(1);你的意思是在第一个字符下面划线?像
标签做什么?是的,但我试着做,但不工作。。。让value2=
${value.charAt(0)}
返回value2+value.slice(1);不需要角度。不需要角度意味着?你可以用CSS很简单地做到。上面的代码有什么问题?你在否定每个人的答案@trichetriche是的,这是正确的,但是想让其他
javascript/angular爱好者知道如何净化HTML。你的答案非常好而且简单:——;不需要角度。不需要角度意味着?你可以用CSS很简单地做到。上面的代码有什么问题?你在否定每个人的答案@trichetriche是的,这是正确的,但是想让其他
javascript/angular爱好者知道如何净化HTML。你的答案非常好而且简单:——;当你投否决票时,请有礼貌地发表评论。我已经删除了答案@Chellappan你本来可以保留它的,我只是对答案进行了排序,请不要在你否决时发表评论。我已经删除了答案@Chellappan你本来可以保留它的,我只是对答案进行排序
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));
  }
}