【发布时间】:2018-12-08 16:45:45
【问题描述】:
我在 .ts 文件中有一个变量 var locations,并希望它等于同一文件夹中的一个 json 对象。换句话说,.json 文件每 5 秒更改一次,我需要更新变量。我认为他 rxjs 可观察是他们要走的路。我试过了
ngOnInit() {
timer(0, 7000).pipe(
switchMap( _ => this.hawkerservice.fetchNews()
)).pipe(
map((ret:any) => {
this.locations = ret
})
).subscribe();
}
现在这很好用,除了 .fetchNews() pull 是在一个端口上:
export class MapjsonService{
theUrl = 'http://localhost:8000/locations.json';
constructor(private http: HttpClient) { }
fetchNews(): Observable<any>{
return this.http.get(this.theUrl)
}
}
所以我的问题是在不通过端口传递 json 对象的情况下最好的方法是什么。即,只是在本地获取它。
谢谢
【问题讨论】:
-
你的选择真的很有限。您可以通过拉取(您当前的使用)或通过 websocket 从服务器推送来通过 http 获取文件。
-
我不想这样做stackoverflow.com/questions/44042223/…,因为没有http的更简单的解决方案会更好
-
@SandraWillford 像这样接缝是 Angular 应该具备的基本功能。如果 http 已经在我的本地机器上,那么使用它会很反直觉。
-
这不是 Angular 问题,这是 Javascript。您可以通过 http get 或 push 读取 JSON 文件。另一种选择是使用导出的对象而不是 json,但是您仍然需要在计时器上读取它。
-
您是否尝试提供相对路径?它的行为如何?