Angular ng2翻译指令:为什么renderer.setText不工作?
我编写了以下指令,因为显然缺少一条指令:Angular ng2翻译指令:为什么renderer.setText不工作?,angular,angular2-directives,ng2-translate,Angular,Angular2 Directives,Ng2 Translate,我编写了以下指令,因为显然缺少一条指令: import { Directive, ElementRef, Renderer, OnDestroy } from '@angular/core'; import { TranslateService } from 'ng2-translate'; import { Subscription } from 'rxjs'; @Directive({selector: '[translate]'}) export class TranslateDirec
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没有包含问题的原因是什么?坏主意?这似乎是@angular 2.2.0的突破性变化。从2.1.0升级后,我遇到了同样的问题。Renderer类被列为实验类,因此我想我们可能会遇到一些不稳定性:( 还有更多的评论: 为此,只需使用
elementRef.nativeElement.textContent=…
直接的