8

User、Book、Library、Movie などのオブジェクトで構成される @NgModule ( ModelsModuleという名前) を作成しようとしています。これを行うには、必要なたびにすべてのオブジェクトをインポートするのではなく、最初にAppModule (メイン @NgModule) にインポートして、必要な回数だけ使用するようにしています。

オブジェクト/エンティティ/クラス...例

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 {}

アプリモジュール

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 { }
4

1 に答える 1

12

モデル クラスは Angular には存在しません。クラスを必要なファイルにインポートしてから使用するだけです。

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

class SomeComponent {
  model = new MyModel();
}

多くの初心者は、importステートメントがクラスで何のためにあるのかについて混乱しているようで、クラスをAngularに何らかの方法でインポートすることで、何とかそれらを取り除くことができると考えています. これはそうではありません。クラスをファイルにインポートすることは、Angular に固有のものではありません。ファイルのインポートは、あるファイルの項目を別のファイルで使用できるようにする単純な方法です。

于 2016-10-26T10:45:34.200 に答える