2017-02-22 25 views
0

我想推动动态web服务数据到TRACKONE里面app.service.ts文件。如何在变量中推动Web Service 2 Typescript

我在链接上创建了一个服务器,该链接按照与Track []相同的顺序投影JSON。

[ 
    {id: 11, name: 'App1'}, 
    {id: 12, name: 'App2'}, 
    {id: 13, name: 'App3'}, 
    {id: 14, name: 'App4'} 
]; 

而且从服务器获取的数据与存储在使用的Http一个函数,这是每5秒的时间间隔后得到的数据,并刷新数据和在控制台显示它。

private serviceUrl = "http://localhost:9000/service"; 

constructor(private http: Http){ 
    this.getService(); 
} 

getServiceOne(interval: number): Observable<Track[]> { 
    return Observable.timer(0,interval) 
    .mergeMap(()=>{ 
    return this.http.get(this.serviceUrl) 
     .map(res => res.json()); 
    }); 
} 

getService() { 
    this.getServiceOne(5000).subscribe(posts => { 
    console.log(this.posts = posts); 
    }) 
} 

我只是需要从的getService()通过JSON值出口VAR TRACKONE:田径[]

export class Track { 
    id: number; 
    name: string; 
} 

export var TRACKONE: Track[] = [ 
    {id: 11, name: 'App1'}, 
    {id: 12, name: 'App2'}, 
    {id: 13, name: 'App3'}, 
    {id: 14, name: 'App4'}, 
]; 

找到合适的解决方案请帮助。提前致谢。

+0

如果你只是想覆盖数据,为什么不:'.subscribe(posts => {TRACKONE = posts})'? – Alex

+0

它不起作用。我需要将TRACKONE中的静态数据替换为Web服务。但是如果我在getService()中订阅TRACKONE,那么当我在另一个函数中获得TRACKONE时,它会显示错误,因为它不是全局导出的。 –

+0

你需要分享一些代码。 “TRACKONE”在哪里申报?请分享重现此问题所需的最低代码:) – Alex

回答

0

最后我想通了,我需要调用getServiceOne()函数的组件而不是服务,因为我正面临着这个问题。

现在我已经添加了以下行component.ts文件并导入service.ts文件,它的正常工作。

getTrackOnes(): void { 
    this.trackoneService.getServiceOne(5000).subscribe(tracks => {this.tracks = tracks;}); 
} 
相关问题