我尝试了解更多关于Observable的信息,我使用它们从url获取一些json数据,但是我有一些get方法的问题。 另外我想知道如果有这个问题的另一个解决方案。使用Angular observable和http
import { Component , ViewChild , AfterViewInit } from '@angular/core';
import {Observable} from 'rxjs/Rx';
import {Http} from '@angular/http';
@Component({
selector: 'app-root',
template: `<h1>Hello World!</h1>
<input type="text" #name >
`,
})
export class AppComponent implements AfterViewInit{
@ViewChild ('name') input;
constructor(private http: Http){}
ngAfterViewInit(){
var keyup = Observable.fromEvent(this.input.nativeElement,"keyup")
.map((data: any) => data.target.value)
.filter(text => text.length >= 3)
.distinctUntilChanged()
.debounceTime(400)
.flatMap(result => {
var url = "https://freemusicarchive.org/api/trackSearch?limit=10&q="+result;
var res = this.http.get(url).map(data => {data.json()});
return res
});
keyup.subscribe(data => console.log(data));
}
}
它说导入
HttpModule
:无法读取属性“得到”的未定义 –你永远不注入HTTP是:http;进入你的构造函数。 – Igor