在Angular 1.x中,有可能(而且很容易)获取包含其他指令的模板字符串(例如,来自翻译服务),并使用$compile
函数允许这些指令功能。我发现this这个问题似乎为Angular 2中的类似问题提供了解决方案,但它要复杂得多。
我所涉及的具体案例涉及一个带有锚标记的翻译字符串,其中click事件需要由包含的组件传递。我们使用@ViewChild
引用结合一些直接DOM操作(设置innerHtml
并直接在addEventListener
上使用nativeElement
)。这有效,但并不理想。我更愿意拥有以下内容:
组件模板:
<p class="text-xs-center" translate [translateParams]="{ callback: clickHandler() }">
INFO_PARAGRAPH
</p>
clickHandler()
是组件上的方法。
/i18n/en.json
{
"INFO_PARAGRAPH": "Here is a <a (click)=\"{{callback}}\">link</a>";
}
我正在考虑将我们拥有的解决方案转换为自己的组件或可能只是一个指令,但还没有完成。这是我的第一个Angular 2应用程序,所以我仍然在加快1和1之间的差异。 2.我应该坚持使用简单但更脏的方法,还是有更好的方法,不涉及使用组件工厂和所有与之相关的代码,链接到链接的问题?