Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在角度组件中使用上下文渲染模板?_Javascript_Angular_Angular I18n - Fatal编程技术网

Javascript 如何在角度组件中使用上下文渲染模板?

Javascript 如何在角度组件中使用上下文渲染模板?,javascript,angular,angular-i18n,Javascript,Angular,Angular I18n,我在Angular8中使用ng template来进行复数翻译,以显示组件向用户发出的通知,但我无法在附加到DOM之前获得模板的完整生成的内部HTML,因为上下文尚未绑定。 如何呈现一个带有上下文的模板,并获取其内部HTML 我尝试使用ViewContainerRef来呈现模板并将其附加到DOM中,效果很好,但我不想将某些内容附加到DOM中,稍后再阅读 模板: <ng-template #activeDeactiveSuccessMessage let-card="card">

我在Angular8中使用
ng template
来进行复数翻译,以显示组件向用户发出的通知,但我无法在附加到DOM之前获得模板的完整生成的内部HTML,因为上下文尚未绑定。 如何呈现一个带有上下文的模板,并获取其内部HTML

我尝试使用
ViewContainerRef
来呈现模板并将其附加到DOM中,效果很好,但我不想将某些内容附加到DOM中,稍后再阅读

模板:

<ng-template #activeDeactiveSuccessMessage let-card="card">
    <span i18n="@@card.notification">Notification</span>
    <span i18n>{card.lockStatus, select,
      LOCKED {Card number ending with {{card.number}} has been deactivated.}
      UNLOCKED {Card number ending with {{card.number}} has been activated.}
      other {Card number status changed to {{card.lockStatus}} }}</span>
</ng-template>
但是我不想附加到DOM,我想在附加之前在组件内部获得渲染模板。 使用下面的代码获取文本,但对于需要上下文的第二个节点,返回注释!:

let el = this.activeDeactiveSuccessMessage.createEmbeddedView({ card });
console.log(el.rootNodes[0].innerHTML); // -->     Notification
console.log(el.rootNodes[1].innerHTML); // -->     <!----><!----><!----><!---->
let el=this.activeDeactiveSuccessMessage.createEmbeddedView({card});
console.log(el.rootNodes[0].innerHTML);//-->通知
console.log(el.rootNodes[1].innerHTML);//-->
我希望以6236结尾的
卡号的输出已停用。
用于第二个节点。

问题已解决

我遇到的问题是因为我请求在运行时翻译脚本中的警报消息,我不想使用
ngx translate
。 幸运的是,在angular 9中,在
@angular/localize
的帮助下,这个问题已经解决,并且可以通过以下方式将文本翻译成脚本:

@组件({
模板:“{{title}}”
})
导出类HomeComponent{
title=$localize`您有10个用户';
}
欲了解更多信息,请访问

let el = this._viewContainerRef.createEmbeddedView(this.activeDeactiveSuccessMessage, { card });
let el = this.activeDeactiveSuccessMessage.createEmbeddedView({ card });
console.log(el.rootNodes[0].innerHTML); // -->     Notification
console.log(el.rootNodes[1].innerHTML); // -->     <!----><!----><!----><!---->