2016-08-22 2 views
2
angular2 버전 사용

메신저 2.0.0을-rc.5 내가 파일 이름이각도 2 타이프 라이터 @injectable

import {Injectable} from '@angular/core'; 

export interface userdetails{ 
    userid: string, 
    password: string, 
    name: string, 
    sbu: string, 
    division: string, 
    position:string, 
    loggedin:boolean 
} 

@Injectable() 
export class Userdetails implements userdetails { 
    public userid: string = null; 
    public password: string = null; 
    public name: string = null; 
    public sbu: string = null; 
    public division: string = null; 
    public position: string = null; 
    public loggedin: boolean = false; 

    constructor(){ 

    } 
    isLoggedin(){ 
     return this.loggedin; 
    } 
    userSBUdetails(){ 
     return this.sbu; 
    } 
    getUserdetails(){ 
     return {userid: this.userid, 
       password: this.password, 
       name: this.name, 
       sbu: this.sbu, 
       division: this.division, 
       position: this.position, 
       loggedin: this.loggedin}; 
    } 
    resetDetails(){ 
     this.userid = null; 
     this.password = null; 
     this.name = null; 
     this.sbu = null; 
     this.division = null; 
     this.position = null; 
     this.loggedin = false; 
    } 
    setDetails(data){ 
     this.userid = data.userid; 
     this.password = null; 
     this.sbu = data.sbu; 
     this.division = data.division; 
     this.position = data.position; 
     this.loggedin = true; 
    } 

} 

userdetails.ts 만들고 다음 단계는 내가 app.module.ts로 가져올

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule }  from '@angular/http'; 
import { AppComponent }  from './app.component'; 
import { routing, 
     appRoutingProviders } from './app.routing'; 
     //all child route 
import { DominoMenuRouting } from './domino.menu/domino.menu.routing'; 
import { MAPMenuRouting } from './map.menu/map.routing'; 
     //all component 
     //domino.menu 
import { DominoMenuComponent } from './domino.menu/domino.menu'; 
import { PizzaComponent } from './domino.menu/pizza/pizza'; 
import { ToppingComponent } from './domino.menu/topping/topping'; 
     //map.menu 
import { MAPMenuComponent } from './map.menu/map'; 
import { AdminUserComponent } from './map.menu/admin.user/admin.user'; 
import { DomUserComponent } from './map.menu/domino.user/domino.user'; 

import { LoginComponent } from './login/login'; 
import { MainMenuComponent } from './main.menu/main.menu'; 
import { Httpprovider } from './httpprovider'; 
import { Userdetails } from './userdetails/userdetails'; <<-- 

@NgModule({ 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    routing, 
    HttpModule, 
    DominoMenuRouting, 
    MAPMenuRouting, 
    Userdetails <<-- 
    ], 
    declarations: [ 
    AppComponent, 
    LoginComponent, 
    MainMenuComponent, 
    DominoMenuComponent, 
    PizzaComponent, 
    ToppingComponent, 
    AdminUserComponent, 
    DomUserComponent, 
    MAPMenuComponent 
    ], 
    providers: [ 
    appRoutingProviders, 
    Httpprovider 
    ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { 
} 

하지만 메신저를 실행할 때, 나는 오류를 얻었다는

VM60:18 Error: TypeError: Cannot read property 'type' of null(…) 

말을하지만 난 userdetail를 제거하는 경우 응용 프로그램이 잘 작동하는 app.module.ts에서 null 문이 잘못 되었나요?

답변

2

imports은 다른 모듈을 모듈로 가져 오는 데 사용됩니다.

UserDetails은 모듈이 아니며 제공자입니다. 따라서 imports에서 제거하고 모듈 메타 데이터에서 providers에 추가하십시오.

추신 : 여기에 나와있는 이름 지정 규칙은 매우 불규칙합니다.

+0

나는 얼마나 어리석은가?, 정말 고마워! 내 명명 규칙에서 더 잘 만들거야. – Rommy