Я хотел бы назвать свойство машинописного текста из шаблона angular2. Я не могу этого сделать, если я вызову свойство объекта в цикле. Если цикл отсутствует, код работает нормально.Вызов машинописного getter в angular2
Calling method from a Angular 2 class inside template Этот вопрос касается проблемы, если нет петли.
Пожалуйста, найдите Plunker here.
import {Component} from '@angular/core'
export class User {
id: number;
mail: string;
created_at: string;
first_name: string;
last_name: string;
deleted_at: any;
// if I call {{user.name}} nothing gets printed.
get name() {
return "My name is:" + this.first_name;
}
}
@Component({
selector: 'my-app',
template: `
<ion-list *ngFor="let user of users">
<div>{{user.first_name}}</div>
</ion-list>
`
})
export class App {
users: User[];
constructor() {
this.users = [ {first_name:"Jagan"}, {first_name:"Nath"} ];
}
}
Update
Вот кусок кода. Ниже приведена как рабочая, так и не рабочая версия.
//our root app component
import {Component, Input} from '@angular/core'
import { MyComponent } from './my-component';
export class User {
first_name : string;
get name() {
return "Name:" + this.first_name;
}
}
@Component({
selector: 'my-app',
template: `
<div>
{{user.first_name}}
</div>
`,
directives: [ MyComponent ]
})
export class App {
constructor() {
let str = "{ \"first_name\" : \"Jagan\" }";
this.user = JSON.parse(str) as User;
}
}
// Это не работает.
/* @Component({
selector: 'my-app',
template: `
<div>
{{user.name}}
</div>
`,
directives: [ MyComponent ]
})
*/
Извините, но, я полагаю, вы также прочитали обновление. – Jagannath
Нет, я пропустил это, но теперь я обновил ответ. Идея остается прежней: используйте конструктор в User. – Sjoerd
Похоже, это работает. Я опробовал образец плункера. Там работало. Скорее всего, это будет работать в моем приложении. Будет проверять его, как только я пойду домой. На какое-то время я принял ответ. Я понял проблему сейчас. – Jagannath