2016-09-14 242 views
2

我寫了一個功能模塊,以下是代碼瞭解Angular2依賴注入

app.ticket.service.ts,這是我的服務,我想注入

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

Injectable() 
export class AppTicketService {  

    SaveTicket(): string { 
return "service saved ticket"; 
    }  

} 

app.tickets.module.ts,這是我的特點模塊

'use strict'; 
import { NgModule } from '@angular/core'; 
import { SharedModule } from '../shared/app.shared.module'; 
import { AppCreatTicketComponent } from './app.create-ticket.component'; 
//-- import services 
import { AppTicketService } from './app.ticket.service'; 

//-- import routing 
import { ticketRouting } from './app.ticket.routing'; 
    @NgModule({ 
    declarations:[ AppCreatTicketComponent], 
    imports:[ SharedModule, 
       ticketRouting], 
    exports:[], 
    providers:[AppTicketService] 
}) 

export class TicketsModule { } 

app.create-ticket.component.ts,這是我的組件, 屬於技藝URE模塊

'use strict'; 
import { Component , OnInit , Inject} from '@angular/core';  

//-- import service 
import { AppTicketService } from './app.ticket.service'; 

@Component({ 
templateUrl: '/tickets/create' 
}) 

export class AppCreatTicketComponent implements OnInit{ 

ngOnInit(){} 

constructor(public service1 :AppTicketService) { 
    let test = this.service1.SaveTicket();  
} 

} 

在運行時,我得到:

「無法解析AppCreatTicketComponent所有參數:」在瀏覽器控制檯錯誤

有什麼需要修改,以解決此問題?

回答

0

要解決這個問題,我不得不修改構造放慢參數在app.create-ticket.component.ts文件

原始

constructor(public service1 :AppTicketService) 

修改

constructor(@Inject(AppTicketService) private service1: AppTicketService) 

你可以找到原因here