В основном я изучал Angular из здесь .
Я получил это в app.module.ts Я должен импортировать FormsModule
, как показано ниже фрагмент кода
// At app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {ReactiveFormsModule} from "@angular/forms"
// import {FormsModule} from "@angular/forms"; // Commented purposly to check
import { CommonModule } from '@angular/common';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HeroesComponent } from './heroes/heroes.component';
@NgModule({
declarations: [
AppComponent,
HeroesComponent
],
imports: [
BrowserModule,
AppRoutingModule,
// FormsModule, // Commented purposly to check
CommonModule,
ReactiveFormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
теперь этот импорт мне нужно сделать в app.module.ts, чтобы он запустил пример
import {FormsModule} из "@ angular / forms";
но почему нельзя импортировать то же самое в компоненте heroes.component.ts напрямую (см. Пример по упомянутой ссылке выше)?
как показано ниже фрагмент кода
// At heroes.component.ts
import { Component, OnInit } from '@angular/core';
import {Hero} from "../modelClasses/hero";
import {FormsModule} from "@angular/forms"; //**Despite its imported my example is not working if I comment in FormsModule in app.module.ts
@Component({
selector: 'app-heroes',
templateUrl: './heroes.component.html',
styleUrls: ['./heroes.component.css']
})
export class HeroesComponent implements OnInit {
hero : Hero = {id: 1,
name: "Windstorm" }
constructor() { }
ngOnInit() {
}
}
потому что, согласно моему пониманию, модуль и компоненты являются двумя различными концептуальными строительными блоками любого углового приложения, где модуль инкапсулирует многие директивы сервисов компонентов, в то время как компонент является меньшей частью для системы.
, но также, если класс аннотированс компонентом означает ли это, что он не может импортировать модули напрямую?
Потому что в конце концов класс и модуль работают как пакет, поэтому идеально экспортируемые классы из пакета должны быть доступны для imпорт в другом классе.
Может помочь понять, почему такой способ мне нужно импортировать специально в моем файле app.module.ts?