Angular2: Ошибка переменной в шаблоне (no context)

Следи за собой, будь осторожен

Наивно полагая что все очень круто и можно вот так просто работать с переменной из загрузки я потеряла два часа времени на пустом месте, вокруг ошибки «нет такой data.id» и хоть разбейся. И ведь ее на самом деле и не было.

export class Data {
	id: number;
}
 
import { Component } from '@angular/core';
import { HTTP_PROVIDERS } from '@angular/http';
import { Data, DataService } from './app.data.service';
 
@Component({
	selector: 'my-app',
	providers: [DataService, HTTP_PROVIDERS],
	template : `{{data.id}}`
})
 
class AppComponent {
	private data : Data;
 
	constructor(private dataService: DataService) {
 
	}
	ngOnInit() {
		this.dataService.load().then(data => this.data = data);
	}
}
export {AppComponent};

А все почему — потому что шаблон выводился до загрузки. Решением стало дефолтное значение, и никаких no context в шаблоне.

class AppComponent {
	constructor(private dataService: DataService) {
		this.data.id = 11111;
	}
...

Оставить комментарий

XHTML: Вы можете использовать такие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">