У меня есть угловая директива, которая добавляет стиль text-overflow: ellipsis; overflow: hidden; white-space: nowrap;
в ngOnInit
, а затем выглядит примерно так:
@Directive({ selector: 'ellipsis' })
class EllipsisDirective {
ngAfterViewInit() {
const el: HTMLElement = this.el.nativeElement;
if (el.offsetWidth < el.scrollWidth) {
el.setAttribute('title', el.innerText);
}
}
}
Использование: <div ellipsis>Some Very Long Text Here</div>
Проблема:
На некоторых страницах компоновка / компоненты не изменяются при «навигации», а только данные.В настоящее время директива не определяет разницу в el.innerText
и поэтому сохраняет старое свойство .title
.
Я также пытался использовать Input()
и работать с ngOnChanges()
.Хотя я предпочел бы не использовать ввод.
Я могу заставить его работать с вводом и setTimeout
, но это вряд ли может быть правильным.