Angular 服务 - 类型 'void' 不可分配给类型 'Project[]'
Angular Services - Type 'void' is not assignable to type 'Project[]'
我正在努力使用 Angular 中的服务。
我有服务:
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Project } from '../project';
import { Observable, of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ProjectService {
constructor(
private http: HttpClient,
) { }
getProjects() {
this.http.get<Project[]>('/api/getprojects').subscribe((response) => {
console.log(response);
return response;
})
}
}
我在组件仪表板中使用服务:
import { ThrowStmt } from '@angular/compiler';
import { Component, OnInit } from '@angular/core';
import { Project } from '../project';
import { ProjectService } from '../service/project.service';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss']
})
export class DashboardComponent implements OnInit {
constructor(
private projectService: ProjectService
) { }
projects!: Project[];
ngOnInit():void {
this.getProjects();
}
getProjects(){
this.projects = this.projectService.getProjects();
return this.projects;
}
}
但是得到这个错误:
Type 'void' is not assignable to type 'Project[]'.
27 this.projects = this.projectService.getProjects();
我尝试了一些方法并且已经注意到 Angular 英雄教程,但无法解决。
你能帮帮我吗?
ProjectService(不要订阅您的服务)
getProjects() {
return this.http.get<Project[]>('/api/getprojects')
}
DashboardComponent
项目$ = this.projectService.getProjects();
并且在您的模板中您订阅了 projects$ observable 示例项目$|async
<div *ngFor="let project of projects$ | async)">{{project|json}}</div>
我不确定我是否正确,但它有效:)
目前仪表板组件看起来像这样
export class DashboardComponent implements OnInit {
constructor(
private projectService: ProjectService,
) { }
projects!: Project[];
public projects$ = this.projectService.getProjects();
ngOnInit():void {
}
getProjects(){
//this.projects = this.projectService.getProjects();
}
}
我正在努力使用 Angular 中的服务。
我有服务:
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Project } from '../project';
import { Observable, of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ProjectService {
constructor(
private http: HttpClient,
) { }
getProjects() {
this.http.get<Project[]>('/api/getprojects').subscribe((response) => {
console.log(response);
return response;
})
}
}
我在组件仪表板中使用服务:
import { ThrowStmt } from '@angular/compiler';
import { Component, OnInit } from '@angular/core';
import { Project } from '../project';
import { ProjectService } from '../service/project.service';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss']
})
export class DashboardComponent implements OnInit {
constructor(
private projectService: ProjectService
) { }
projects!: Project[];
ngOnInit():void {
this.getProjects();
}
getProjects(){
this.projects = this.projectService.getProjects();
return this.projects;
}
}
但是得到这个错误:
Type 'void' is not assignable to type 'Project[]'.
27 this.projects = this.projectService.getProjects();
我尝试了一些方法并且已经注意到 Angular 英雄教程,但无法解决。 你能帮帮我吗?
ProjectService(不要订阅您的服务)
getProjects() {
return this.http.get<Project[]>('/api/getprojects')
}
DashboardComponent
项目$ = this.projectService.getProjects();
并且在您的模板中您订阅了 projects$ observable 示例项目$|async
<div *ngFor="let project of projects$ | async)">{{project|json}}</div>
我不确定我是否正确,但它有效:) 目前仪表板组件看起来像这样
export class DashboardComponent implements OnInit {
constructor(
private projectService: ProjectService,
) { }
projects!: Project[];
public projects$ = this.projectService.getProjects();
ngOnInit():void {
}
getProjects(){
//this.projects = this.projectService.getProjects();
}
}