我已經被獲取的圖書列表服務本地我得到這個錯誤:轉換可觀察到陣角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 (
這是我的服務類:
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));
}
}
,這是組件:
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.component.html:
<ul>
<li *ngFor = "let book of bookss ">
Book: {{book.title}}
</li>
</ul>
,這是由服務返回的數據:
console.log(bookss) result
此錯誤不是在'TS'側,它是一個HTML迭代錯誤。你能否發佈'BooksComponent.html'文件。該錯誤在該文件的'* ngFor'中。 –
如果我們還可以看到從服務中獲取的數據的'console.log',那就太好了。即使你正在期待一系列書籍('Books []'),你是否有機會獲得其他數據結構? –
感謝您的答覆我已經添加了html和console.log的問題,請看看它,並告訴我什麼是錯的,謝謝你 – user3368703