Angular 2 Typescript - 无法解析TooltipService的所有参数
问题描述:
我有这个代码注入一个服务,它使一个http.get请求成为一个组件。Angular 2 Typescript - 无法解析TooltipService的所有参数
该组件呈现正常,但是当我将服务注入组件时出现错误。
并得到错误;
EXCEPTION:无法解析TooltipService的所有参数:(?)。
我已经包含了自举,因为我相信它是一个DI问题,
import { Component, Input } from '@angular/core';
import { TooltipService } from '../../services/tooltip/tooltip.service';
@Component({
..,
..,
providers: [TooltipService]
})
export class TooltipComponent implements OnInit {
@Input() explaination: boolean;
@Input() nodeId: number;
@Input() questionId: number;
constructor(public tooltipService: TooltipComponent) {}
ngOnInit() {
if(this.explaination) {
this.tooltipService.getExplaination(this.nodeId, this.questionId)
.then(response => console.log(response));
}
}
}
-
import { Http } from '@angular/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class TooltipService {
constructor(public http: HTTP) {}
getExplaination(private nodeId: number, private questionId: number) {
let url = `someUrl/`
+ questionId + `/` + nodeId;
return this.http.get(url)
.toPromise()
.then(response => response.json())
.catch(this.handleError);
}
}
-
import { bootstrap } from '@angular/platform-browser-dynamic';
import { disableDeprecatedForms, provideForms } from '@angular/forms';
import { HTTP_PROVIDERS } from '@angular/http';
import {AppComponent} from '../app/components/app/app.component';
bootstrap(AppComponent, [
HTTP_PROVIDERS,
disableDeprecatedForms(),
provideForms()
])
.catch((err: any) => console.error(err));
答
你在你的代码2个错别字。
这Http
,不HTTP
:
export class TooltipService {
constructor(public http: Http) {}
你可能要注入的服务,而不是组件:
export class TooltipComponent implements OnInit {
@Input() explaination: boolean;
@Input() nodeId: number;
@Input() questionId: number;
constructor(public tooltipService: TooltipService) {}
洛尔多么愚蠢的错误 –
偏偏是最好的! :) – rinukkusu
你介意接受解决问题的答案吗? – rinukkusu