2017-09-15 5 views
0

J'ai quelques classes que je veux être juste une classe simple de bean/DTO, elles ne sont pas des classes @component d'affichage, elles ne sont pas des classes @Pipe et ne devraient pas être @Directive (au moins je ne pense pas CA devrait etre!).Comment dois-je inclure des classes de modèle dans un module Angular?

Je veux être en mesure de les regrouper dans un module (ils seront utilisés dans d'autres modules), mais malgré plusieurs incantations je continue à avoir des erreurs comme ceci:

Lorsque je démarre mon application angulaire (ng servir) il compile bien, mais dans la console navigateur (Chrome) J'obtiens une erreur ....

Uncaught Error: Unexpected value 'Accreditation' declared by the module 'ServiceModule'. Please add a @Pipe/@Directive/@Component annotation. 

Comment dois-je être LIASSES ces classes dans un module pour une utilisation par d'autres modules? Cela ne me dérange pas s'ils sont dans mon module de service ou dans d'autres nouveaux modules 'beans'.

Compte tenu de cette définition du module (service.module.ts):

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import {MemberService} from "./member/member.service"; 
import { Accreditation } from "./accreditation"; 
import {Player} from "./player"; 
import {Club} from "./club"; 
import {Coach} from "./coach"; 

@NgModule({ 
    imports: [CommonModule], 
    declarations: [Accreditation, Club, Player, Coach], 
    exports: [Accreditation, Club, Player, Coach], 
    providers: [MemberService] 
}) 
export class ServiceModule { } 

accreditation.ts:

export class Accreditation { 
    uuid: string; 
    name :string; 
    lastComplete: Date; 
    expires: Date; 
    inLast6Months: boolean; 
    type: String; 
    displayName: String; 
    hasCompleted: boolean; 
} 
+1

Basic DTO ne sont pas des choses angulaires et donc n » t appartenir à un module angulaire. Vous ne pouvez pas les ajouter au tableau de déclarations. Le tableau de déclarations est uniquement pour les composants, les directives et les canaux, d'où l'erreur que vous voyez. – DeborahK

Répondre

0

Vous ne devez importer ni déclarer votre classe de modèle app.module .ts. Il est un objet disponible comme une importation dans vos composants, directives, etc .. importer simplement dans quel que soit le composant/services/directive dont vous avez besoin avec d'autres importations:

import { Accreditation } from "./accreditation";