J'ai un service qui récupère une liste de livres que j'obtenir localement cette erreur:Conversion Observable à un tableau angulaire 4 HTTP
BooksComponent.html:2 ERROR Error: Cannot find a differ supporting object
'[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.
at NgForOf.webpackJsonp.../../../common/@angular/common.es5.js.NgForOf.ngOnChanges (common.es5.js:1681)
at checkAndUpdateDirectiveInline (
Voici ma classe de service:
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';
import { Books } from './books';
@Injectable()
export class FetchbooksService {
books:any[];
constructor(private _http:Http) { }
fetch():Observable<Books[]>{
return this._http.get('./assets/books.json').map(
(response:Response)=> <Books[]>response.json(),
error => console.log(error)
).do(data => console.log(data));
}
}
et c'est le composant:
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { FetchbooksService } from '../fetchbooks.service';
import { Books } from '../books';
@Component({
selector: 'app-books',
templateUrl: './books.component.html',
styleUrls: ['./books.component.css']
})
export class BooksComponent implements OnInit {
bookss:Books[];
constructor(private _bookservice: FetchbooksService) {
_bookservice.fetch().subscribe(
(bookss)=> this.bookss = bookss,
error => console.log(error)=
);
}
ngOnInit() {
}
}
Books est une interface s'il vous plaît me dire ce que je fais mal?
c'est books.component.html:
<ul>
<li *ngFor = "let book of bookss ">
Book: {{book.title}}
</li>
</ul>
et ce sont les données renvoyées par le service:
console.log(bookss) result
Cette erreur est pas dans le côté 'admissible TS, c'est une erreur d'itération HTML. Pourriez-vous poster le fichier 'BooksComponent.html' s'il vous plait. L'erreur est dans '* ngFor' de ce fichier. –
Si nous pouvions également voir le fichier 'console.log' de vos données récupérées du service, ce serait génial. Y a-t-il une chance que, même si vous attendez une série de livres ('Books []'), vous receviez une autre structure de données? –
merci pour la réponse, j'ai ajouté le html et console.log dans la question s'il vous plaît regardez-le et dites-moi ce qui ne va pas avec beaucoup merci – user3368703