这是我的第一步创建angular2与打字稿,我需要帮助。 第一个请求运作良好,我会展示它。 当我点击时,我想创建一个新的请求。 我怎么能这样做?
export class App {
img: Array<Object>;
constructor(http:Http) { http.request('http://boroviha.dev.ooosis.com/api/client/get_photo_sections.php').toRx().subscribe(res => {
console.log('img',res.json().data);
this.img = res.json().data;
});
}
onSelect(item: img) { this.selectedItem = item; console.log(item);
constructor(http:Http) {
this.http.request('http://localhost:3001/api/random-quote')
.map(res => res.text())
.subscribe(
data => this.randomQuote = data,
err => this.logError(err),
() => console.log('Random Quote Complete')
);
}
}
}
bootstrap(App, [HTTP_BINDINGS, bind(RequestOptions).toClass(MyOptions)])
.catch(err => console.error(err));
答案 0 :(得分:0)
您在onSelect
方法中定义了一个有点奇怪的构造函数:
onSelect(item: img) { this.selectedItem = item; console.log(item);
constructor(http:Http) {
(...)
我会将此重构为类似的东西:
export class App {
img: Array<Object>;
constructor(private http:Http) {
(...)
}
onSelect(item: img) {
this.selectedItem = item; console.log(item);
this.http.get('http://localhost:3001/api/random-quote')
.map(res => res.text())
.subscribe(
data => this.randomQuote = data,
err => this.logError(err),
() => console.log('Random Quote Complete')
);
}
}
}
我在构造函数参数级别添加了private
,以使http
类的App
参数成为一部分。因此,您可以将其与this
关键字一起使用。
您可以注意到,现在应该使用HTTP_PROVIDERS
代替HTTP_BINDINGS
。
希望它可以帮到你, 亨利