gpt4 book ai didi

angular - ng2-translate 指令 : why does renderer. setText 不起作用?

转载 作者:太空狗 更新时间:2023-10-29 18:08:55 27 4
gpt4 key购买 nike

我写了以下指令,因为显然 ng2-translate缺少一个:

import { Directive, ElementRef, Renderer, OnDestroy } from '@angular/core';
import { TranslateService } from 'ng2-translate';
import { Subscription } from 'rxjs';

@Directive({selector: '[translate]'})
export class TranslateDirective implements OnDestroy {
subscription: Subscription;

constructor(el: ElementRef, renderer: Renderer, translateService: TranslateService) {
let translateKey = el.nativeElement.attributes.translate.value;
this.subscription = translateService.get(translateKey).subscribe(value => {
el.nativeElement.innerHTML = value; // this works
// renderer.setText(el.nativeElement, value); // this doesn't work for some reason?
});
}

ngOnDestroy(): void {
if (this.subscription) {
this.subscription.unsubscribe();
}
}
}

如您所见,我使用低级别“el.nativeElement.innerHTML”让它工作,但 API 似乎暗示“renderer.setText”调用也应该工作。相反,它根本没有任何效果。

问题:这是为什么? setText 调用应该做什么?额外奖励:代码是否存在问题,或者 ng2-translate 不包含代码是否有充分的理由?坏主意?

最佳答案

Renderer.setText was never meant to be used for elements, only for text nodes.

还有来自该评论的更多内容:

To do this, just use elementRef.nativeElement.textContent = ... directly.

关于angular - ng2-translate 指令 : why does renderer. setText 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40834900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com