Files
smarthome/mean-app/src/app/detail.component.ts
T

88 lines
1.7 KiB
TypeScript

import { Component, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { IntervalObservable } from 'rxjs/observable/IntervalObservable';
import { Subscription } from 'rxjs/Subscription';
import { DataService } from './data.service';
import {LineChartComponent} from "./chart.component";
import {LineData} from "./line-data";
import {LabelData} from "./label-data";
@Component({
selector: 'detail',
templateUrl: './detail.component.html'
})
export class DetailComponent implements OnInit {
public id:string = 'Loading';
public name:string = "Loading";
public data:LineData;
public label:LabelData;
public data2:LineData;
public hov:number = 0;
public htv:number = 0;
public ht:number = 0;
public loaded:boolean = false;
public subscription:Subscription;
constructor(private dataService: DataService,
private route: ActivatedRoute) {}
ngOnInit(): void {
this.id = this.route.snapshot.params['id'];
this.refreshData(this.id);
this.subscription = IntervalObservable.create(7500).subscribe(n => this.refreshData(this.id));
}
ngOnDestroy(): void {
this.subscription.unsubscribe();
}
refreshData(id:string)
{
console.log("Refreshing data for ", this.id);
this.dataService
.get(id)
.subscribe(res => {
this.label = res.labels;
this.data = res.TTE1;
this.data2 = res.HTV;
this.loaded = true;
});
this.dataService
.usage(id)
.subscribe(res => {
this.hov = res.hov;
this.htv = res.htv;
this.ht = res.ht;
});
this.dataService
.name(id)
.subscribe(res => {
this.name = res;
});
}
}