Angular 服务中注入的服务未定义
我有两种服务,第一种服务以这种方式注入第二种服务: 规则.服务.tsAngular 服务中注入的服务未定义,angular,typescript,angular2-services,Angular,Typescript,Angular2 Services,我有两种服务,第一种服务以这种方式注入第二种服务: 规则.服务.ts @Injectable() export class RuleService { constructor( private _resourceService: ResourceService ){} someMethod(url: string) { this._resourceService.getData(url).then((res) => {
@Injectable()
export class RuleService {
constructor(
private _resourceService: ResourceService
){}
someMethod(url: string) {
this._resourceService.getData(url).then((res) => {
console.log(res);
}
}
}
@Injectable()
export class ResourceService {
constructor(
http: Http
) { }
public getData(url?: string): Promise<T> {
//some code
}
}
resource.service.ts
@Injectable()
export class RuleService {
constructor(
private _resourceService: ResourceService
){}
someMethod(url: string) {
this._resourceService.getData(url).then((res) => {
console.log(res);
}
}
}
@Injectable()
export class ResourceService {
constructor(
http: Http
) { }
public getData(url?: string): Promise<T> {
//some code
}
}
但当我尝试从RuleService调用someMethod时,我得到以下控制台错误:
异常:未捕获(承诺中):TypeError:无法读取属性
未定义类型的“getData”错误:无法读取的属性“getData”
未定义
评估时(评估时(),:210:39)
在新的分区(评估时间(),:695:29)
在HTMLSelectElement.eval(eval at(),:208:20)
在HTMLSelectElement.dispatch()处
在HTMLSelectElement.r.handle()处
在ZoneDelegate.invokeTask(eval at(),:363:31)
在Object.onInvokeTask(eval at(),:3971:41)
在ZoneDelegate.invokeTask(eval at(),:362:36)
at Zone.runTask(eval at(),:166:47)
在HTMLSelectElement.ZoneTask.invoke(eval at(),:416:38)
ErrorHandler.handleError@core.umd.js?e2a5:3064下一步@
core.umd.js?e2a5:8041 schedulerFn@core.umd.js?e2a5:3689
SafeSubscriber.\uu tryOrUnsub@VM86162:223 SafeSubscriber.next@
VM86162:172订户。_next@VM86162:125订户。next@
VM86162:89 Subject.next@VM86159:55 EventEmitter.emit@
core.umd.js?e2a5:3675 NgZone.triggerror@core.umd.js?e2a5:4040
onHandleError@core.umd.js?e2a5:4001 ZoneDelegate.handleError@
zone.js?fad3:334 zone.runguard@zone.js?fad3:142
_loop_1@zone.js?fad3:540 drainMicroTaskQueue@zone.js?fad3:549 ZoneTask.invoke@zone.js?fad3:420 ListPicker.\u handleMouseUp@
关于:空白:540
谁能告诉我,我做错了什么?如何在服务中更正实施服务?您需要使用箭头功能来保留此
$("select[name='" + a_parameters[0] + "']")
.change((e: any) => { // <== arrow function instead of FE(function expression)
return new Promise((resolve) => {
let array: any[] = [];
this._resourceService.getData(a_parameters[1]).then(() => {
$(“选择[name=”+a_参数[0]+“]”)
.change((e:any)=>{//{
let数组:任意[]=[];
这个._resourceService.getData(a_参数[1])。然后(()=>{
您需要使用箭头功能来保留此
$("select[name='" + a_parameters[0] + "']")
.change((e: any) => { // <== arrow function instead of FE(function expression)
return new Promise((resolve) => {
let array: any[] = [];
this._resourceService.getData(a_parameters[1]).then(() => {
$(“选择[name=”+a_参数[0]+“]”)
.change((e:any)=>{//{
let数组:任意[]=[];
这个._resourceService.getData(a_参数[1])。然后(()=>{
请在调用someMethod
编辑:调用方法谢谢:)然后我发现您丢失了contextThank!这是工作。我相信我犯了这个错误。;)请在调用someMethod
编辑:调用方法谢谢:)的地方添加代码然后我看到你失去了很多。谢谢!这是工作。我可以相信我犯了那个错误