【发布时间】:2018-06-16 00:39:37
【问题描述】:
我想在前端使用 angular 6 显示从 api 返回的数据
这是我所做的:但没有显示数据:
component.htm:
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Popular Movies</h3>
</div>
<div class="panel-body">
<div class="row">
<div *ngFor="let movie of movies; let i=index" class="col-md-2">
<div *ngIf="i < 6">
<img *ngIf="movie.poster_path" class="thumbnail" src="http://image.tmdb.org/t/p/w500/{{movie.poster_path}}">
<h4>{{movie.title}}</h4>
<p>{{movie.release_date}}</p>
<p><a class="btn btn-default" routerLink="/movie/{{movie.id}}">View details »</a></p>
</div>
</div>
</div>
</div>
</div>
component.ts:
import { Component, OnInit } from '@angular/core';
import { Http } from '@angular/http';
import { Location } from '@angular/common';
import { MoviesService } from '../movies.service';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-movies',
templateUrl: './movies.component.html',
styleUrls: ['./movies.component.scss']
})
export class MoviesComponent implements OnInit {
movies: any;
constructor(private router: ActivatedRoute, private http: Http, private location: Location, private moviesService: MoviesService) {
this.movies = [];
}
ngOnInit() {
this.router.params.subscribe((params) => {
const id = params['id'];
this.moviesService.getMovies(id)
.then(movies => {
console.log(movies);
this.movies = this.movies;
});
});
}
}
service.ts:
import { Injectable } from '@angular/core';
import { Headers, Http, Response } from '@angular/http';
import {Jsonp} from '@angular/http';
@Injectable({
providedIn: 'root'
})
export class MoviesService {
private apiUrl = 'http://localhost:8000/movies';
constructor(private http: Http, private _jsonp: Jsonp) { }
getMovies(id: string): Promise<any> {
return this.http.get(this.apiUrl)
.toPromise()
.then(this.handleData)
.catch(this.handleError);
}
private handleData(res: any) {
const body = res.json();
console.log(body); // for development purposes only
return body || {};
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error); // for development purposes only
return Promise.reject(error.message || error);
}
}
当我运行我的应用程序时,没有显示从 api 返回的数据,当我在网络浏览器中检查响应时,返回的数据没有错误,
为什么数据没有显示在我的应用程序中?有什么建议我可能做错了吗?谢谢
【问题讨论】:
-
您没有看到console.log() 打印的任何数据?
标签: javascript node.js angular typescript