我的服务定义如下。
import { Injectable } from "@angular/core";
import { Http } from "@angular/http";
@Injectable()
export class SirService {
constructor(private http: Http) {
console.log("The http is: " + http);
}
stuff() { return ["uno", "duo", "tress"]; }
}
然后,我将我的组件的提供者设置为这样的服务。
import { Component } from "@angular/core";
import { SirService } from "../app.service";
@Component({
selector: "demo",
providers: [SirService],
template: require("./demo.html"),
styles: [require("./common.scss")]
})
export class Demo {
// constructor() {
constructor(private service: SirService) {
console.log("Service: " + service);
}
}
我不确定如何访问服务中的stuff()
电话。以上产生的错误告诉我Angular无法找到任何有意义的东西进入我的构造函数。当我使用无参数构造函数时,我没有引用该服务。那种卡在那里似乎很少有例子说明如何为组件而不是模块做这个......(我可能会愚蠢地用谷歌搜索......)
错误信息是巨大的,但这是最相关的部分(据我所知)。
未处理的承诺拒绝:没有Http的提供商! ;区域:角;任务:Promise.then;价值:
答案 0 :(得分:1)
错误是
No provider for Http
这意味着问题不在于您的服务。问题是您的服务需要使用Http服务,并且该服务不存在。
您需要导入提供此服务的HttpModule:
@NgModule({
// ...
imports: [BrowserModule, ..., HttpModule]
})
export class AppModule {}
中的更多解释