我希望在Angular 2中编写一个组件,用于显示和突出显示HTML代码。应该可以直接书写HTML代码,而无需使用
最终,我想要编写类似如下的内容:
应该在浏览器中显示如下:
在Angular 1中,实现此功能的方法是在指令中注册一个pre-compile函数,以便它可以在被angular编译之前检索元素的内容。在Angular 2中,我所找到的只有AfterViewInit,它仅在代码已经编译后执行,因此
<
等转义标签。最终,我想要编写类似如下的内容:
<my-code-component>
<span (click)="test()">My test code</span>
</my-code-component>
应该在浏览器中显示如下:
<span (click)="test()">My test code</span>
因此,原始的HTML代码应该按照原样显示。
在Angular 1中,实现此功能的方法是在指令中注册一个pre-compile函数,以便它可以在被angular编译之前检索元素的内容。在Angular 2中,我所找到的只有AfterViewInit,它仅在代码已经编译后执行,因此
(click)
属性缺少在innerHTML
中的部分。是否存在类似于Angular 2的预编译函数?
我发现的另一件事是ngNonBindable
属性。它可以防止Angular 2编译该元素。但是,即使像这样进行测试:
<div ngNonBindable>
<span (click)="test()">My test code</span>
</div>
不起作用。相反,它会抛出大量的InvalidCharacterError: Failed to execute 'setAttribute' on 'Element': '(click)' is not a valid attribute name.
错误,这似乎与DOM规范中的this bug有关。
这是Angular 2的一个错误吗,还是我做错了什么?