Это тот вопрос, который вам задают на собеседовании, и он может стоить вам работы, поэтому не помещайте вызов функции в шаблон.
Лучшим ответом будет использование канала
@Pipe({
name: 'emptyArray'
})
export class EmptyArrayPipe implements PipeTransform {
transform(array: any[]): boolean {
return !!array || array.length === 0;
}
}
и использовать его
[disabled]="productsSelected | emptyArray"
Это вызовет только обнаружение изменений для повторного запуска logi c, если productsSelected изменяется.
Если вы go для Angular технических собеседований вы, вероятно, столкнетесь с подобным сценарием.