Javascript 不存在属性的角度2接口抛出错误
我有一个棱角分明的2界面books.tsJavascript 不存在属性的角度2接口抛出错误,javascript,angularjs,Javascript,Angularjs,我有一个棱角分明的2界面books.ts export interface Books { artists: Object; tracks: Object; } import { Injectable } from '@angular/core'; import { Http, Response, Headers, RequestOptions } from '@angular/http'; import { Observable } from 'rxjs/Observable'; impor
export interface Books {
artists: Object;
tracks: Object;
}
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { Books } from 'app/pages/search-results/books';
import 'rxjs/add/operator/map'
@Injectable()
export class SearchService {
constructor(private _http:Http) { }
getBook(keyword): Observable<Books[]>{
return this._http.get('https://api.spotify.com/v1/search?q=' + keyword + '&type=track,artist')
.map((response: Response) => <Books[]> response.json());
}
}
这是我的服务文件,我将它与http请求一起使用searchService.ts
export interface Books {
artists: Object;
tracks: Object;
}
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { Books } from 'app/pages/search-results/books';
import 'rxjs/add/operator/map'
@Injectable()
export class SearchService {
constructor(private _http:Http) { }
getBook(keyword): Observable<Books[]>{
return this._http.get('https://api.spotify.com/v1/search?q=' + keyword + '&type=track,artist')
.map((response: Response) => <Books[]> response.json());
}
}
我不确定,但我想你是想从藏书中找到艺术家。您可以通过检查或例如res[0].artist来获取具体的艺术家。类SearchService中的getBook函数返回一个Books对象数组(Books[]) 因此,SearchResultsComponent中的res in getBooks函数将是一个书籍数组
您可以
console.log(res)
查看详细信息,如果您想访问美工人员,请尝试使用res[0]。美工人员
如果res不是空数组问题是我得到了对象的响应,并且我正在将其分配给导致错误的数组。我只是将这两种类型都更改为object,它解决了我的问题
由此
books: Books[];
对此
books: Books;
执行
console.log(res)时记录的数据是什么
@anoop它显示{artists:{limit:20,item:[]},tracks:{limit:20,item:[]}我认为对console.log进行注释并不能为您解决问题,因为您获得了对象并试图使用数组映射
,请尝试将其更改为this.books=[res]代码>可能在response.json之前尝试删除