angular - Angular - 使用 Angular 服务获取数据
问题描述
我正在尝试获取详细信息。所以,这是我的代码。
数据服务.ts
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import 'rxjs/add/operator/map';
import { HttpClient,HttpErrorResponse } from
'@angular/common/http';
import { ActivatedRoute, Router } from '@angular/router';
export class DataService {
constructor(private http: HttpClient) {}
userdetails() {
return this.http.get(`http://jsonplaceholder.typicode.com/users`);
}
}
home.component.ts
import { Component, OnInit } from '@angular/core';
import { DataService } from '../data.service';
import { ActivatedRoute, Router } from '@angular/router';
import { HttpClient } from '@angular/common/http';
import { userInfo } from 'os';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
user:any
constructor(private data: DataService) { }
ngOnInit()
{
this.data.userdetails().subscribe(
allData => {
this.user = allData;
return this.user;
});
}
}
home.component.html
<div *ngFor="let x of allData">
{{{x.name}}
</div>
<router-outlet></router-outlet>
我在 home.component.ts 中遇到一些语法错误和其他错误,例如“无法解析 DataService 的所有参数:(?)。” . 请帮帮我。
解决方案
您忘记将Injectable
装饰器添加到您的 DataService 类。
@Injectable()
export class DataService {
}
https://angular.io/api/core/Injectable
感谢 JB Nizet,下面的附加说明。
您的所有订阅都
OnInit
应该以 a 结尾,;
而不是 a,
。allData
在您的组件中不作为属性存在。<div *ngFor="let x of allData">
不会工作。
推荐阅读
- javascript - javascript异步:无法读取未定义的属性'then'
- algorithm - 从 a、b 和 a^n 以 p 为模计算 b^n
- android - AIDE OpenGL es 2.0 三角形不会渲染
- javascript - PHP脚本状态栏
- php - 更改 WampServer PHP Web 版本
- c - 使用多线程解析错误的参数 - c
- unity3d - 如何在我的 Unity 应用程序向用户请求权限之前添加通知?
- python-3.x - 合并多个 mp4 视频和图像
- spring - Spring MVC 和 EhCache 不工作
- python - 当我在另一个目录中打开文件时,它不会打印文件的内容而是目录?