Я делаю угловой проект и сделал необходимые компоненты и импортированные модули. Основная проблема, которую я здесь вижу ... состоит в том, что мы делаем 2 шага:
Есть исключение. Теперь я ожидал, что точно так же, как 'браузер-модуль' (предварительно выбранный) или'form-module '(добавленный вручную) - на шаге 2 (т.е. массив декораторов) должна быть инъекция или добавление имени для' ng-модуль '. Почему его нет? Это единственное исключение или есть и другое? Разве нельзя было бы добавить ngModule в декоратор?
Note: Code is not required as app it is working fine. The question is simple that if we are using a particular rule for all -- Components, Services, Modules, Pipes, Models and Interface -- why not for 'ngModule'?
Сэр, в этом случае код не требуется, это простая причина того, что элемент не добавляется в конкретный массив.
NgModule - это класс, отмеченный декоратором @NgModule. Это не отдельный модуль, настраиваемый в вашем приложении.
смысл ... ngModule отличается от всех остальных модулей?
ngModule поставляется с ядром Angular. Это декоратор, который вы используете для объявления своих модулей.
Но, как и 'browserModule' ... не так ли ... и мы должны использовать его для запуска даже одной страницы. Тогда почему он добавлен в массив «import» (часть нижнего объявления шага 2)?
Это необходимо, потому что вы используете декоратор @NgModule
при определении вашего модуля. Это просто декоратор, а не модуль. Вам нужно импортировать его сценарий, потому что вы просто его используете. Вы можете думать об этом как о декораторах @Input
или @Output
. Вы импортируете их в свои компоненты, чтобы использовать их внутри компонента.
Можете посмотреть на код NgModule
Это интерфейс
export interface NgModule { ...
Однако BrowserModule
- это модуль, который украшает себя @NgModule
.
Проверьте код
@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})
export class BrowserModule { ...
Тогда почему мы импортируем browserModule, который также является частью angular / core, как также спрашивает @sajeetharan. Правила должны быть одинаковыми для обоих. не так ли?
Да, я имел в виду последнее. Это не модуль, а просто декоратор. BrowserModule
- это модуль, который предоставляет множество вещей
AOT Complier состоит из 2 фаз.
На этапе анализа кода с помощью декоратора класса @ngModule компилятор AOT получит метаданные о модуле. Используя эти данные, он создаст файл metadata.json для компиляции.
На этапе генерации кода будут созданы фабрики модулей.
пожалуйста, добавьте код, а не изображения