了解模块中的Angular2依赖注入 [英] Understanding Angular2 Dependency Injection in modules
问题描述
我已经编写了一个功能模块,下面是代码
I have written a feature module , and below is the code
app.ticket.service.ts
,这是我要注入的服务
app.ticket.service.ts
, this is my service which i would like to inject
'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,这是我的组件, 属于功能模块
app.create-ticket.component.ts , this is my component , which belongs to feature module
'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的所有参数:"错误
"Can't resolve all parameters for AppCreatTicketComponent:" error in browser console
要解决此问题需要修改什么?
What needs to be modified to resolve this issue?
推荐答案
要解决此问题,我必须在app.create-ticket.component.ts文件中修改构造函数参数
To fix this issue I had to modify constructor paramter in app.create-ticket.component.ts file
原始
constructor(public service1 :AppTicketService)
已修改
constructor(@Inject(AppTicketService) private service1: AppTicketService)
您可以在此处找到原因
You can find reason for this here
这篇关于了解模块中的Angular2依赖注入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!