在Angular 2中将模型/实体/对象添加到NgModule

cbe*_*lda 7 typescript ng-modules angular

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

对象/实体/类......示例

export class Author {
  constructor (
    public name: string,
    public avatar: string
  ) { }
}
Run Code Online (Sandbox Code Playgroud)

ModelsModule

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 {}
Run Code Online (Sandbox Code Playgroud)

的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 { }
Run Code Online (Sandbox Code Playgroud)

Pau*_*tha 11

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

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

class SomeComponent {
  model = new MyModel();
}
Run Code Online (Sandbox Code Playgroud)

似乎很多新手都对这个import语句在课堂上的含义感到困惑,他们认为他们可以通过某种方式将类导入Angular来以某种方式摆脱它们.不是这种情况.将类导入到您的文件中并不是Angular特有的.文件导入只是我们能够使用另一个文件中的项目的一种方式.