Почему в Angular импорт модуля должен быть в app.module.ts, почему модуль не может быть импортирован непосредственно в компонент? - PullRequest
0 голосов
/ 04 июля 2019

В основном я изучал 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?

...