структурных директив на русском?
Когда указываешь *ngFor, парсер шаблона ангуляра понимает, что это структурная директива и он создаёт внешний ng-template, к которому прикрепляет обычные привязки свойств, по сути он преобразует сахар, называемый микросинтаксисом с помощью парсера микросинтаксиса в полную форму привязок. HTML элементы или компоненты которые были прикреплены к структурной директиве, а также дочерние сущности попадают во внутрь оболочки ng-template. Ангуляр по особому интерпретирует поведение элемента ng-template при работе со структурными директивами. Давай разберем что во что преобраузется: 1) у нас есть микросинтаксис «let item of items; index as i”, парсер микросинтаксиса вступает в работу, видишь of items в выражении? На интересует слово “of”, если посмотреть на исходники то мы увидим @Input свойство под названием ngForOf, ага тут тоже of, после префикса атрибута директивы selector: ‘ngFor’, значит когда мы пишем of items это попадает в ngFor[name] -> @Input ngForOf: iterable, ngForOf работает с любыми итерируемыми обьектами, мы передаем ему массив и он его итерирует для каждой итерации ngFor, передавая каждый элемент в let item, а let переменные из цикла преобразуются в let-item. После точки с запятой идет index as i, это преобразуется в let-i=“index”, ты можешь создать любую @Input привязку на структурке и обязан указать сначала префикс (селектор директивы) + название для передачи, думай об этом как алиас для внешнего юзера, и затем передать ему что то например @Input myAttrSnow: string; *myAttr=“snow: ‘love’” и как то манипулировать этим внтури директивы.
Вот тут есть объяснения с примерами и реализацией https://youtu.be/WTFeZNk6PSw
Обсуждают сегодня