【发布时间】:2017-03-14 20:02:36
【问题描述】:
我是 Angular 2 的新手,我可能不了解可观察的力量。我创建了一个使用 rxjs 提供 REST 调用的简单服务:
import {Injectable} from '@angular/core';
import {Http, Response, Headers} from '@angular/http';
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Injectable()
export class DataService {
constructor(private http: Http) { }
postFoo(){
this.http.get('http://localhost:8080/Sample')
.map(res=>res.json())
.subscribe(
res=>console.log(res)
);
}
}
我在我的组件中以这种方式调用了这个方法:
ngOnInit(){
this._dataService.postFoo();
}
这一切都很好。现在我想找到一种方法,每次数据发生变化时,组件都会重新调用此方法。我读了一些关于.distinctUntilChanged 的可观察方法,但我不知道这是否是一个好方法。
如果问题不好或者我没有很好地解释我的问题,我很抱歉。
问候
【问题讨论】:
-
你想要这样的东西吗? stackoverflow.com/questions/36261829/…
-
我试着写一个例子:在第一次调用我的方法时返回了一个包含 2 个元素的对象。 5 分钟后,有人在这个对象中添加了另一个元素,但我看到的是旧对象。要查看新对象,我必须刷新页面(以便组件调用该方法),因此我想开发一种方法来监听数据的变化,它会自动重新调用。
-
添加的新数据是由您的应用处理的还是来自其他地方?
-
它来自其他地方
-
你必须将你的
get方法执行到post方法中,每次用户添加数据,当它完成时,get方法将被调用。
标签: javascript rest angular rxjs