Передайте элемент для работы в angular

Я хотел бы условно применить атрибут title к элементу, что я пытаюсь сделать так:

<div class="option-title" [attr.title]="isTitleTruncated() ? option.title : null">
  {{option.title}}
</div>

Но я хотел бы передать ссылку на элемент на мою функцию, используемую в условии, но я не смог этого сделать. Я пробовал использовать this, и это дает мне экземпляр компонента, но мне нужен сам div. Это возможно?

1
0
3 666
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте использовать ссылочную переменную шаблона, например:

<div ... #divRef [attr.title]="isTitleTruncated(divRef) ? option.title : null">

Спасибо, это сработало, хотя сейчас у меня обнаружена ошибка обнаружения изменений, о которой я отправлю отдельный вопрос.

mindparse 31.10.2018 13:17

Вы должны создать ссылочную переменную шаблона на элементе, которая выглядит как #myDiv, а затем передать ее функции.

<div class="option-title" #myDiv [attr.title]="isTitleTruncated(myDiv) ? option.title : null">
  {{option.title}}
</div>

что такое тип myDiv? он просто выводит разметку в console.log, если я поставлю тип any, чтобы проверить его, поэтому неясно, какой это тип данных. Мне нужно поменять класс CSS на выбранный элемент.

Alexander 04.09.2020 02:00

Другие вопросы по теме