Потому сама директива *ngSwitch не является структурной, не вырезает хост элемент и не возращает обратно
а что делает эта звездочка? я просто в инете нашел что это лишь для того чтобы не писать квадратные скобки. а то что делает директива уже не важно
Директивы со звездочкой называются структурными, те могут изменять структуру документа. Удалять элементы из dom, вставлять и тп
https://angular.io/guide/structural-directives#shorthand-examples
Директивы со звездочкой не всегда являются структурными, тоже самое и обратно, если я директиву поставил без звездочки это не значит что она НЕ структурная а вполне может быть структурная
Утверждение верно, это лишь соглашение, но если разработчик так поступает, то его следует разжаловать в стажеры и дело с концом.
а почему не структурная директива может не работать если ей добавить звездочку?
многие структурные директивы ожидают TemplateRef в конструкторе, если их поставить НЕ на темплейт то понятное дело они работать не будут
Я ошибся выше. Евгений меня запутал, а я немного болею и даже что-то повелся на его выпад. Потому, что если на директиве висит звездочка, то Angular автоматически трансформирует элемент, на котором висит директива в <ng-template>. Если это обычная директива, то она просто не умеет работать на <ng-template>.
ангуляр под капотом как-то понимает что после звездочки будет структурная директива?
ну я выше и скинул линк на таблицу в доке
https://angular.io/guide/structural-directives#shorthand-examples ок кину еще раз
я просто пьян в говно могу запутанные вещи говорить сорян
теперь более менее понятно. благодарю
Завидую! Лучше быть пьяным, чем больным(
Обсуждают сегодня