3
HTML要素のinnerHTML
を変更するangular2で作成したディレクティブがあります。ここでディレクティブの簡易版Angular2 - ディレクティブでinnerHTMLを変更するときにrouterLinkを動的に作成する
import { Directive, ElementRef, Input, DoCheck } from '@angular/core';
@Directive({
selector: '[fieldName]'
})
export class FieldNameDirective implements DoCheck {
element: HTMLElement;
@Input('fieldName')
fieldId: number;
cached: number;
constructor(
el: ElementRef,
private moduleService: ModuleService) {
this.element = el.nativeElement;
}
ngDoCheck() {
if (this.cached != this.fieldId) {
// store cached
this.cached = this.fieldId;
this.element.innerHTML = 'TEST ME';
}
}
}
今、私はそれがルータのリンクパスを含めることができるように、このディレクティブを変更したい、この
のようなものif (this.fieldId == 1)
this.element.innerHTML = 'NORMAL TEXT';
else
this.element.innerHTML = '<a routerLink="/path/to/go/to">TEXT WITH LINK</a>';
がある。しかし、これを行うことはしていないようです実際にa
タグにhref
リンクを生成します。
ang1では、私は$compile
サービスを使用し、それを動作させるためにHTMLをコンパイルする必要があると思います。私はangular2で同様のことをしなくてはなりませんか?
新しい@angular/router
を使用していますが、廃止予定のものではありません。
私は同様の状況がありますが、どうやってそれを最終的に解決しましたか? – yl2015