0
私は省略記号と呼ばれるこのような指示文を持っています。テンプレート補間後の指示文からinnerhtmlにアクセスする方法
@Directive({
selector: '[ellipsis]'
})
export class EllipsisDirective implements OnInit, AfterContentInit {
constructor(private el: ElementRef,private renderer: Renderer2) {
console.log(el);
}
truncateText() {
let el = this.el.nativeElement;
var wordArray = el.innerHTML.split(' ');
while(el.scrollHeight > el.offsetHeight) {
wordArray.pop();
el.innerHTML = wordArray.join(' ') + '...';
}
}
ngOnInit(): void {
}
ngAfterContentInit(): void {
this.truncateText();
}
}
問題はinnerHTML
が空であることである:
<p class="card-text" ellipsis>{{ description }}</p>
そして、ここでは、ディレクティブです:私はこのようにそれを使用します。しかし元の{{ description }}
はそうではありません。私は間違って何をしていますか?
コンテンツをディレクティブに渡すようにしないでください。 '[ellipsis] =" description "'? – jonrsharpe
ありがとうございますが、内挿後に要素の内容にアクセスする方法はありませんか? –
'ngAfterViewInit'が役立ちます – yurzui