#angular #typescript
#angular #typescript
Вопрос:
Я использую @HostBinding
для привязки результатов функции к видимому атрибуту элемента хоста:
@HostBinding('attr.visible')
private get visibleAttr(): any {
return this._visible ? '' : null;
}
Имя функции кажется избыточным, потому что ничто другое никогда не вызовет эту функцию. Я пытался объявить это как анонимную лямбда-функцию, но это не сработало:
@HostBinding('attr.visible') (() => {
return this._visible ? '' : null;
})
Есть ли способ объявить эту функцию анонимно или, по крайней мере, с помощью лямбда? Или фреймворк Angular зависит от того, как он назван?
Ответ №1:
@HostBinding
является декоратором и нуждается в действительном элементе для оформления. Если ваш 2-й пример кода
(() => {
return this._visible ? '' : null;
})
сам по себе был допустимым членом, он мог бы работать, но это недопустимый typescript (или javascript) для объявления члена. Как таковой он не может работать.