Форум программистов, компьютерный форум, киберфорум
Angular/AngularJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 22.11.2020
Сообщений: 5

Angular 13. Динамические компоненты

03.04.2022, 05:54. Показов 1354. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем.

Вопрос по Angular 13: при создании динамического компонента из динамического компонента не вызывается ngAfterViewInit.

Из родительского компонента (app.component.ts) создаётся первый дочерний компонент (child1.component.ts), из него создаётся второй дочерний компонент (child2.component.ts)

AppComponent -> Child1Component -> Child2Component

Возникшая проблема: во втором компоненте не вызывается метод ngAfterViewInit.

По идее, в консоли после открытия страницы должно быть:
Bash
1
2
3
parent
child1
child2
а отображается только:
Bash
1
2
parent
child1
Если добавлять другие операторы в ngAfterViewInit, то они также не выполняются.

Код примера:

app.module.ts
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
 
import {AppComponent} from './app.component';
import {Child1Component} from './child1.component';
import {Child2Component} from './child2.component';
 
@NgModule({
    imports:[BrowserModule],
    declarations: [AppComponent, Child1Component, Child2Component],
    bootstrap: [AppComponent]
})
export class AppModule{}
app.component.ts
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { Component, ViewChild, ViewContainerRef, ComponentRef, AfterViewInit} from '@angular/core';
import { Child1Component } from './child1.component';
 
@Component({
    selector: 'parent',
    template: `<div style="border: 1px solid #000000;padding: 10px 10px;">Parent<br><ng-container #child1></ng-container></div>`
})
export class AppComponent implements AfterViewInit {
 
    @ViewChild('child1', { read: ViewContainerRef })
    private viewRef: ViewContainerRef;
    private componentRef: ComponentRef<Child1Component>;
 
    ngAfterViewInit (){
        this.componentRef = this.viewRef.createComponent(Child1Component);
        console.log("parent");
    }
}
child1.component.ts
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { Component, ViewChild, ViewContainerRef, ComponentRef, AfterViewInit} from '@angular/core';
import { Child2Component } from './child2.component';
 
@Component({
    selector: 'child1',
    template: `<div style="border: 1px solid #000000;padding: 10px 10px;">child1<br><ng-container #child2></ng-container></div>`
})
export class Child1Component implements AfterViewInit {
 
    @ViewChild('child2', { read: ViewContainerRef })
    private viewRef: ViewContainerRef;
    private componentRef: ComponentRef<Child2Component>;
 
    ngAfterViewInit (){
        this.componentRef = this.viewRef.createComponent(Child2Component);
        console.log("child1");
    }
}
child2.component.ts
JavaScript
1
2
3
4
5
6
7
8
9
10
11
import { Component, ViewChild, ViewContainerRef, ComponentRef, AfterViewInit} from '@angular/core';
 
@Component({
    selector: 'child2',
    template: `<div style="border: 1px solid #000000;padding: 10px 10px;">child2</div>`
})
export class Child2Component implements AfterViewInit {
    ngAfterViewInit (){
        console.log("child2");
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.04.2022, 05:54
Ответы с готовыми решениями:

Динамические компоненты
1.Верно ли, что при создании в программе компонента, его свойства по умолчанию получат те значения, которые мы бы увидели в инспекторе...

Динамические компоненты
Нужно сделать так , чтобы при нажатии на &quot;Режим расчета&quot; появлялось все то , что на форме снизу.

динамические компоненты
Здравствуйте. Мне нужно динамически создавать компонент , при этом что бы он был рандомного цвета, и что бы эти компоненты двигались...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2022, 05:54
Помогаю со студенческими работами здесь

Динамические компоненты
Как динамически создать определённый компанент, например Panel PS люди не сердитесь на меня...я в делфи 3 месяца не был =(

Динамические компоненты C#
Здравствуйте, возникла проблема с созданием динамических компонентов. Создаю компоненты след способом TextBox tb = new TextBox(); ...

Динамические компоненты
Здравствуйте! Нашел свою курсовую в интернете и разумеется у меня с ней вышли нестыковки.) Дело в том, что она с динамическими...

Align и динамические компоненты
Добрый вечер! прошу помощи у знающих в разъяснении с динамическими компонентами. На форме динамически создаю 4 компонента: 1)...

PopupMenu и динамические компоненты
На форме есть контекстное меню (PopupMenu1) с одним пунктом, клик по которому обрабатывается в процедуре формы TForma.D1Click. Во время...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru