我有一个代码,看起来像:
<mat-panel-title>
{{data}}
</mat-panel-title>
此{{data}}是一个变量,包含My **name** is Sam
,'Mycountryis greece'这样的句子。name和country也是变量,位于以下位置:属于{{data}}的info[""][''][0]。我想使用ts文件仅为“info[""][''][0]”位置添加不同的颜色。如果您能帮助我,我将非常高兴。
我有一个代码,看起来像:
<mat-panel-title>
{{data}}
</mat-panel-title>
此{{data}}是一个变量,包含My **name** is Sam
,'Mycountryis greece'这样的句子。name和country也是变量,位于以下位置:属于{{data}}的info[""][''][0]。我想使用ts文件仅为“info[""][''][0]”位置添加不同的颜色。如果您能帮助我,我将非常高兴。
3条答案
按热度按时间lrl1mhuk1#
尝试创建指令:
然后通过选择器调用它:
rkttyhzu2#
编写一个函数,返回最后一个单词的名字,以及没有名字的句子:
解构两个变量,在html中分别使用它们并设置它们样式:
h5qlskok3#
更新
一个单词+(或,或.或\s)或如果它在\s结尾+单词+
1.在getter中,我们需要对此进行更改。oldValue
(just已在代码中更正)
原件
典型的解决方案是使用管道,它转换HTML中的字符串,使用reg表达式替换
<strong>word</strong>
表示的单词。La reg表达式
'(' + x + ')([.,\\s])|(' + x + '$)'
捕获$1或$3中的单词替换和$2中的空格、逗号或点。而用在路上
看到我选择这个管道,你也可以使用一个数组,例如。
我真的不太喜欢使用innerHTML和sanitize,所以我们将尝试一个指令,而不是可以用
为此我们将使用Renderer2。其思想是创建一个“div”,隐藏内容,并将内容的每次更改添加到创建的div innerHTML。
由于我们将使用ngAfterContentChecked -并且该事件执行多次,因此我们将innerHTML存储在变量“oldValue”中。
见stackblitz与这两种方法
注意:我选择用
<strong>word</strong>
替换“word”,我在div 'hightlight'中添加了一个类,以改变styles.css中的css