2016-10-26 7 views
5

ユーザー、ブック、ライブラリ、ムービーなどのオブジェクトで構成された@NgModule(ModelsModule)を作成しようとしていました。これを行うには、私が必要とするたびにすべてのオブジェクトをインポートするのではなく、AppModule(メイン@NgModule)の冒頭にそれらをインポートし、それらを何度も使いたいと思っています。Angular 2のNgModuleにモデル/エンティティ/オブジェクトを追加する

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

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

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

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

これは良い練習であり、実際にはどのように角度-cliが物を構築するかです。問題/質問は何ですか? – Meir

+0

単純なクラスをngModuleにインポートすることはできません。 – MatWaligora

答えて

7

モデルクラスには、角度のある場所はありません。クラスを必要なファイルにインポートしてから使用します。

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

class SomeComponent { 
    model = new MyModel(); 
} 

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

関連する問題