Как решить проблему с подключением фрагмента HTML к основному HTML используя ng-include?

У меня есть один большой HTML файл, который я решил декомпозировать(разбить на несколько не больших логических HTML фрагментов) и подключить их все одном файле. Для этого я решил использовать компонент 'ng-include', вот фрагмент кода, как я его вызываю из глобального HTML файла app.component.html: ...

<ng-include src="'connect.html'"></ng-include>

при запуске, я получаю такую ошибку....

message: "\u001b[96msrc/app/app.component.html\u001b[0m:\u001b[93m104\u001b[0m:\u001b[93m13\u001b[0m - \u001b[91merror\u001b[0m\u001b[90m NG8001: \u001b[0m'ng-include' is not a known element:\n1. If 'ng-include' is an Angular component, then verify that it is part of this module.\n2. If 'ng-include' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.\n\n\u001b[7m104\u001b[0m             <ng-include src=\"'connect.html'\"></ng-include>\n\u001b[7m   \u001b[0m \u001b[91m            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\u001b[0m\n\n  \u001b[96msrc/app/app.component.ts\u001b[0m:\u001b[93m17\u001b[0m:\u001b[93m16\u001b[0m\n    \u001b[7m17\u001b[0m   templateUrl: './app.component.html',\n    \u001b[7m  \u001b[0m \u001b[96m               ~~~~~~~~~~~~~~~~~~~~~~\u001b[0m\n    Error occurs in the template of component AppComponent.\n"

если я пробую такой вариант, то у меня ни чего не происходит, фрагмент не подключен (в данном случае ошибки нет) ...

<div ng-include src="'connect.html'"></div>

Файл connects.html расположен, там же где основной HTML app.component.html

введите сюда описание изображения

Мои текущие окружение:

Angular CLI: 12.2.10
Node: 16.11.1 (Unsupported)
Package Manager: npm 8.1.0
OS: linux x64

Angular: 
... 

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.1202.10 (cli-only)
@angular-devkit/core         12.2.10 (cli-only)
@angular-devkit/schematics   12.2.10 (cli-only)
@schematics/angular          12.2.10 (cli-only)

Я думаю что надо в файл app.component.ts добавить модуль ng-include...? но я ни где не могу найти информации об этом...

Как можно решить эту проблему с загрузкой HTML кода в основной HTML код с использованием ng-include?

Смотрел сюда:

В официальной документации, к сожалению то же не нашел ответ на свой вопрос...


ЗЫ. Вот app.module.ts с добавленным CUSTOM_ELEMENTS_SCHEMA, теперь ошибку не выдает, но и указанный HTML не подгружается...

import { BrowserModule } from '@angular/platform-browser';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA  } from '@angular/core';
import { FormsModule } from '@angular/forms'
import { AppComponent } from './app.component';
import { HttpClientModule} from '@angular/common/http'
import { MatTableModule } from '@angular/material/table'
import {MatCardModule} from '@angular/material/card';
import {MatButtonModule} from '@angular/material/button';
import {MatGridListModule} from '@angular/material/grid-list';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpClientModule,
    MatTableModule,
    MatTableModule,
    MatCardModule,
    MatButtonModule,
    MatGridListModule,
  ],
  schemas: [ CUSTOM_ELEMENTS_SCHEMA ],
  providers: [],
  bootstrap: [
    AppComponent
  ]
})

export class AppModule { }

Спасибо за помощь!


Update: Ответ привел снизу.


Ответы (1 шт):

Автор решения: Инди Путный

После детального изучения https://angular.io/guide/ я понял, что ng-include или ngInclude не используется в последней версии Angular, вместо этого ввели более гибкое понятие - биндинга (bindings)... более подробней можно прочесть по этой ссылке https://angular.io/guide/property-binding#binding-targets, а так же ознакомиться с рабочим примером, как можно реализовать различные привязки и вызовы на конкретной страницы (при этом с возможность передавать между этими сущностями различные данные(объекты))....

Решение вопроса с bindings выглядит так: необходимо в корне /src/app создать новый компонент, следующий коммандой:

ng g component connect

теперь у нас структура проекта будет выглядеть вот так....

введите сюда описание изображения

после этого в файле app.component.html, можно через тэг app-connect:

<app-connect></app-connect>

вызвать содержимое указанного HTML расположенного в файле connect.component.html - данный тэг это условный путь до созданного класса \app\connect

В созданном файле connect.component.html написать следующие:

<p>HI<\p>

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

→ Ссылка