刚开始使用 angular 2,遇到了我的第一个错误。我正在尝试创建用于从服务器获取数据的服务,但出现此错误
Error: Can't resolve all parameters for CourseService: (?). at SyntaxError.ZoneAwareError (http:……}
这是抛出错误的服务代码 app/courses/courses.service.ts
import { Http } from '@angular/http';
export class CourseService {
private _courses : Object[];
public get courses() : Object[] {
return this._courses;
}
public set courses(v : Object[]) {
this._courses = v;
}
constructor(private http: Http) {
http.get("https://jsonplaceholder.typicode.com/posts").subscribe(data => {
this._courses = data.json();
});
}
}
这个服务应该在 app/courses/courses.component.ts 中使用
import { Component } from '@angular/core'
import { CourseService } from "app/courses/course.service";
@Component({
selector: 'courses',
providers: [CourseService],
templateUrl: './courses.component.html',
styleUrls: ['./courses.component.css']
})
export class CoursesComponent {
title : string = "The title of the Course";
courses : Object[];
constructor(private courseService: CourseService) {
console.log("hello");
this.courses = courseService.courses;
}
}
和 app.module 包含
....
....
import { AppComponent } from './app.component';
import { CoursesComponent } from './courses/courses.component';
import { CourseService } from "./courses/course.service";
@NgModule({
declarations: [
AppComponent,
CoursesComponent,
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [CourseService],
bootstrap: [AppComponent, CoursesComponent]
})
export class AppModule { }
最佳答案
将@Injectable() 放在导出类之前。
@Injectable() lets Angular know that a class can be used with the dependency injector.
关于javascript - 如何解决 Can't resolve all parameters error on angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45516620/