【发布时间】:2020-06-06 03:21:27
【问题描述】:
我有这个简单的 Angular 组件:
@Component({
selector: 'my-component',
template: '<p>{{someString}}</p>',
})
export class MyComponent {
@Input() someString: string;
}
someString 可以是任意长度的任意字符串。例如,假设someString 的值为:
"If you want my body and you think I'm sexy, come on, sugar, tell me so."
在这种情况下,Angular 生成的 HTML 基本上等同于:
<p>If you want my body and you think I'm sexy, come on, sugar, tell me so.</p>
我将如何修改MyComponent,以便它检测someString 中每个出现的单词sexy,并让Angular 将该单词包装在另一个HTML 元素中,例如<b>。所以在这个例子中,它会产生类似的东西:
<p>If you want my body and you think I'm <b>sexy</b>, come on, sugar, tell me so.</p>
如果我想将每个出现的单词 sexy 包装在 Angular 组件中而不是原生 HTML 元素中怎么办?是否需要采用不同的方法?
【问题讨论】:
-
可以在句子中搜索单词,然后分别在其前后注入开始和结束标签。
-
@NicholasK 我如何注入开始和结束标签?
-
我添加了一个答案,或者与另一个答案相同。 (IMO,另一个更好!)删除了我的,因为它太复杂了..
-
嗨 - 我已经完成了你的要求:包装在另一个角度标签中。这很糟糕。我最终不得不首先将尝试将文本包装在其中的角度组件(在本例中为
)导出为本机元素。找到解决问题的另一种方法将是我的建议。例如。向顶部元素添加一个 (click) 事件处理程序,并查看它是否是您包装它的 标记之一,然后执行一些操作。
标签: html angular components angular-components