【发布时间】:2018-08-29 16:26:42
【问题描述】:
我正在尝试创建一个自定义指令来替换我的自定义指令的内部文本。我似乎无法访问内部文本内容来应用一些逻辑。
代码如下:
import { Directive, ElementRef, Renderer2, ViewContainerRef } from '@angular/core';
@Directive({
selector: 'text-transformer'
})
export class TextTransformerDirective {
constructor(
private elem: ElementRef) {
// need access to inner text before setting new text
// elem.nativeElement.outerHTML, innerHTML, outerText, innerText are all empty at this point
elem.nativeElement.outerHTML = '<span>My new Text</span>';
}
}
用法:
<text-transformer>Some text</text-transformer>
我想检查标签内的文本,在本例中是“一些文本”。我似乎无法在指令中访问它。
我应该改用组件吗?
【问题讨论】:
-
为什么不把它改成组件并测试一下呢?
-
有性能差异吗?
-
否,但无论如何您都在尝试将此指令用作组件。
-
可能,我正在从 AngularJs(预组件)迁移到 Angular,所以组件在当前应用程序中是一个较新的概念。
-
要访问元素的文本,最好使用管道而不是指令,请参阅this
标签: angular innerhtml directive innertext elementref