Я новичок в Angular 2 и очень озадачен в этот момент.Почему я не могу получить доступ к свойству класса angular2
Я загружаю компонент, который извлекает данные из службы (в формате JSON), и я, по-видимому, не успешен, когда дело доходит до установки свойства в моем классе, который я хочу представлять эти данные.
Я могу однако (с отладчиком) видеть возвращенные данные и alert()
. Я думаю, что я устанавливаю свойство, но шаблон сообщает об ошибке, что он не понимает свойство.
Итак, у меня есть это:
import { Response } from '@angular/http';
import { Location } from '@angular/common';
import { ActivatedRoute, Params } from '@angular/router';
import { Component, Input, OnInit } from '@angular/core';
import 'rxjs/add/operator/switchMap';
import { SiteService } from './site.service';
import { Site } from './site';
@Component({
moduleId: module.id,
selector: 'site-detail',
templateUrl: 'site-detail.component.html'
})
export class SiteDetailComponent implements OnInit {
public site: Site; // **Site is an interface**
constructor(
private siteService: SiteService,
private route: ActivatedRoute,
private location: Location
) { }
// getSite(): void {
ngOnInit(): void {
this.route.params
.switchMap((params: Params) => this.siteService.getSite(params['id']))
.subscribe((data: Response) => {
this.site = data[0];
alert(this.site.sitex_invoiceAccount); ** ALL LOOKS GOOD AT THIS POINT **
})
}
}
alert()
радостно сообщает правильное invoiceAccount
значение, предлагая мне, что я передал данные в моей собственности site
.
Однако шаблон не уверен, и этот фрагмент:
<div class="form-group">
<label for="xxxx">Site ID</label>
<input type="text" class="form-control" [value]="site.sitex_invoiceAccount">
</div>
говорит мне:
EXCEPTION: Uncaught (in promise): Error: Error in http://localhost:3000/app/site-detail.component.html:5:52 caused by: Cannot read property 'sitex_invoiceAccount' of undefined TypeError: Cannot read property 'sitex_invoiceAccount' of undefined
Может кто-нибудь сказать мне ошибку, что я совершаю, пожалуйста?
спасибо добрые люди.
О, боже мой, какая основная ошибка! Спасибо, я предполагаю, что я предположил, что шаблон будет отображать ** после ** ngOnInit - мне, очевидно, нужно читать на жизненном цикле. Спасибо, я попробую эти изменения сейчас. –
Результат! Большое спасибо Стефану. –