我是Angular 2和打字稿的新手。Angular typingcript
這是我的跟蹤組件,我從API獲取跟蹤。
import { Component, ViewEncapsulation, OnInit, OnDestroy } from
'@angular/core';
import { ActivatedRoute } from '@angular/router';
import * as moment from 'moment';
import { TrackService } from './track.service';
import { Track } from './track.model';
import { Response } from '@angular/http';
@Component({
selector: 'da-article',
templateUrl: './track.html',
styleUrls: ['./track.scss'],
encapsulation: ViewEncapsulation.Emulated,
providers: [TrackService]
})
export class TrackComponent implements OnInit, OnDestroy {
private track: Track;
private error: Response;
private isLoading: boolean = true;
private releasedTrack: string = moment("2013-03-10T02:00:00Z").format('DD-MM-YYYY');
private duration: string = moment(345678).format("m:ss");
constructor(
private route: ActivatedRoute,
private trackService: TrackService
) {
}
ngOnInit(): void {
let TrackId = this.route.snapshot.params['trackId'];
this.trackService.getAll().subscribe(
(data) => this.track = data[TrackId],
(error) => this.error = error,
() => this.isLoading = false
);
}
ngOnDestroy(): void {}
}
在這些線
私人releasedTrack:字符串=時刻。( 「2013-03-10T02:00:00Z」)格式( 'DD-MM-YYYY'); private duration:string = moment(345678).format(「m:ss」);
我想通過{this.track}而不是硬編碼的值。
This.track是不確定的,(因爲它是不可用)
我怎樣才能做到這一點?
由於
的確,'this.track'在對象構建時不可用。當'this.track'變爲可用時,您必須在'ngOnInit'中稍後執行。 – deceze