【问题标题】:Getting empty json data获取空的json数据
【发布时间】:2018-10-01 07:56:00
【问题描述】:

我正在尝试从 url 获取 json 数据,但我无法获取任何数据。 它只是显示一个空数组。你觉得我错过了什么 在这里?

service.ts

这是 service.ts。我正在尝试从“https://jsonplaceholder.typicode.com/posts”获取数据。

import { Injectable } from '@angular/core';
import{UserCreation} from '../../models/user-creation.model';
import{Observable} from 'rxjs/Observable';
import{of} from 'rxjs/observable/of';
import{catchError,map,tap} from 'rxjs/operators';
import{HttpClient,HttpHeaders} from '@angular/common/http';

const httpOptions={
    headers:new HttpHeaders({'Content-Type':'application/json'})
};

@Injectable({
providedIn: 'root'
})

export class UserCreationService{

//Create constructor to get Http instance
constructor(private http:HttpClient) { }

private usersUrl:'https://jsonplaceholder.typicode.com/posts';

getUsers():Observable<UserCreation[]>{

return this.http.get<UserCreation[]>(this.usersUrl).pipe(
tap(receivedUsers 
=>console.log(`receivedUsers=${JSON.stringify(receivedUsers)}`)),
catchError(error=>of([]))
);
}

app.component.ts

这是component.ts文件

import { Component, OnInit } from '@angular/core';
import { Http, Response } from '@angular/http';
import { UserCreationService } from '../../common/services/user- 
creation.service';


@Component({
selector: 'app',
templateUrl: './app.component.html',
styleUrls: ['./app-component.css']
})

export class AppComponent implements OnInit {

allUsers: UserCreation[];

constructor(private userService: UserCreationService) { }

getUsersFromServices():void{
this.userService.getUsers().subscribe(
  (Users)=>{
    this.allUsers=Users;
    console.log(`this.allUsers = ${JSON.stringify(this.allUsers)}`);

  }
 )
}

ngOnInit(): void {
this.getUsersFromServices();
}

【问题讨论】:

  • 这个 API 是否被调用了?我认为 private usersUrl:'https://jsonplaceholder.typicode.com/posts'; 应该包含 = 符号而不是 : 这样 - private usersUrl='https://jsonplaceholder.typicode.com/posts';
  • console.log(receivedUsers=${JSON.stringify(receivedUsers)})), 打印任何东西
  • @JigneshM.Khatri 很好,你应该回答这个问题

标签: javascript json angular angular6


【解决方案1】:

这里有错字 - private usersUrl:'https://jsonplaceholder.typicode.com/posts';

应该是=,而不是像这样的: - private usersUrl='https://jsonplaceholder.typicode.com/posts';

或者更好的方式private usersUrl:string = 'https://jsonplaceholder.typicode.com/posts';

【讨论】:

    猜你喜欢
    • 2022-08-17
    • 2018-08-07
    • 1970-01-01
    • 2013-10-15
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    相关资源
    最近更新 更多