将 Models/Entities/Objects 添加到 Angular 中的 NgModule 2

Add Models/Entities/Objects to NgModule in Angular 2

我一直在尝试创建一个 @NgModule(名为 ModelsModule),由 User、Book、Library、Movie 等对象组成。这样做我试图不在每次需要时都导入每个对象,而是在 AppModule(主要@NgModule)的开头导入它们,并根据需要多次使用它们。

Objects/Entities/Classes...示例

export class Author {
  constructor (
    public name: string,
    public avatar: string
  ) { }
}

模型模块

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';

import { Author } from './author/author.model';
(...)

@NgModule({
  imports: [
    CommonModule,
    FormsModule,
    Author,
    Book,
    Movie,
    Store
  ],
})
export class ModelsModule {}

AppModule

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { MaterialModule } from '@angular/material';

import { AppComponent, SettingsDialog } from './app.component';

// THAT ONE
import { ModelsModule } from '../models/models.module';

@NgModule({
  declarations: [
    AppComponent,
    SettingsDialog
  ],
  entryComponents: [
    AppComponent,
    SettingsDialog
  ],
  providers: [
    // ModelsModule (?)
  ],
  imports: [
    BrowserModule,
    HttpModule,
    // ModelsModule (?)
    MaterialModule.forRoot()
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

模型 classes 在 Angular 中没有位置。您只需将 class 导入您需要的文件,然后使用它。

import { MyModel } from './my.model';

class SomeComponent {
  model = new MyModel();
}

似乎很多新手都对import语句在class中的作用感到困惑,他们认为他们可以通过导入[=19=以某种方式摆脱它们] 以某种方式变成 Angular 。不是这种情况。将 class 导入您的文件并不是 Angular 特有的。文件导入只是我们能够在另一个文件中使用项目的一种方式。