2016-06-28 3 views
5

Я изучаю angular2 и машинопись и задаюсь вопросом, почему я не могу получить доступ к значениям свойств объекта в моем шаблоне.Angular2 typescript как получить свойства объекта для отображения в шаблоне

Мой компонент:

export class Farm{ 

    data:JSON; 
    id: any; 

    constructor(private nextService: NextService, navParams: NavParams){ 
     this.id = navParams.get("param1"); 

    } 

    getFarmDetails(){ 

     this.data = this.nextService.fetchData(this.id) 
     console.log(this.data) 
    } 
} 

где console.log (this.data) дает мне Object {id: 1, name: "Leanne Graham", username: "Bret", email: "[email protected]", address: Object…}

В моем шаблоне у меня есть

<div> 
    {{data}} 
</div> 

, который выводит на моем экране [объект Объект]

Как я могу вместо этого вывести такие свойства, как электронная почта или имя пользователя?

UPDATE: Если я люблю {{data.email}} Я получаю следующее сообщение об ошибке:

enter image description here

ответ

26

Вы можете обращаться к этим свойствам, как вы бы в JavaScript.

Например:

{{data.email}} 

Если данные извлекаются асинхронно вы можете использовать оператор Элвиса ?., чтобы избежать ошибок, пока данные не равны нулю.

{{data?.email}} 
+1

Я попытался это, но он выдает ошибку: ОРИГИНАЛ ИСКЛЮЧЕНИЕ: TypeError: Не удается прочитать свойство «электронной почты» неопределенной – Nitish

+3

{? {Данные .EMAIL}} работал отлично! Спасибо огромное! – Nitish

+0

Спасибо! Вы только что спасли мне еще один час проблем с отладкой и facepalming. Оператор «elvis» также называется «безопасным навигационным оператором», иногда – sofly

Смежные вопросы