2016-10-26 7 views
5

Kullanıcı, Kitap, Kütüphane, Film vb. Gibi nesnelerden oluşan bir @NgModule (ModelsModule olarak adlandırılmış) oluşturmaya çalışıyorum. Bunu yapmak istediğimde her nesneyi ithal etmemeye çalışıyorum ama onları başlangıçta AppModule (main @NgModule) 'de içe aktarıyorum ve bunları istediğim kadar kullanın.Model/Varlıklar/Nesneleri Angular 2'deki NgModule'ye Ekle

Nesneler/Varlıkları/Sınıflar ... örnek

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

Bu iyi bir uygulama ve aslında açısal-kliptik şeyleri nasıl yapılandırır. Sorun/soru nedir? – Meir

+0

Basit sınıfları ngModule'ye aktaramazsınız. – MatWaligora

cevap

7

Model sınıflarının Açısal'da yeri yoktur. Sınıfı sadece ihtiyacınız olan dosyaya içe aktarın, sonra kullanın.

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

class SomeComponent { 
    model = new MyModel(); 
} 

O başlayanlar bir sürü import açıklamada sınıfında için hangi konusunda kafası karışık görünüyor ve onlar nasılsa nasılsa açısal halinde sınıfı ithal ederek onlardan kurtulmak düşünüyorum. Durum bu değil. Sınıfı dosyanıza içe aktarmak, Angular'a özgü değildir. Dosya içe aktarma, öğeleri bir dosyadaki bir başka dosyadan kullanabilmemizin bir yoludur.