1
我有一个Queue,它本身有一个People数组。从队列中,我想按照人员模板中的定义显示每个人员。Angular 2:* ngFor指令列表
queue.ts
import {Component} from 'angular2/core';
import {Person} from '../person/person';
@Component({
selector: 'queue',
directives: [Person],
template: `<div class="queue">
<person *ngFor="#tP of people"></person>
</div>`
})
export class Queue {
people = [];
constructor(){
this.addPerson(new Person("Bob",20));
this.addPerson(new Person("Jane",30));
this.addPerson(new Person("Dog",40));
this.addPerson(new Person("Cat",50));
};
addPerson(tP:Person):void
{
this.people.push(tP);
}
}
person.ts
import {Component} from 'angular2/core';
@Component({
selector: 'person',
template: `<div class="person">
<div class="name">{{name}}</div>
<div class="age">{{age}}</div>
</div>`
})
export class Person {
constructor(public name:string = "", public age:number = 5){};
setName(newName:string):void{
this.name = newName;
}
}
我希望什么
<div class="queue">
<div class="person"><div class="name">Bob</div><div class="age">20</div></div>
<div class="person"><div class="name">Jane</div><div class="age">30</div></div>
<div class="person"><div class="name">Dog</div><div class="age">40</div></div>
<div class="person"><div class="name">Cat</div><div class="age">50</div></div>
</div>
我得到了什么
例外:没有字符串的提供者! (人 - >字符串)在[人队列@ 1:16]
摘要
我想再现由所述指令本身所限定使用所述模板的指令的列表。
嘿谢谢您的详细回复。所以在这个解决方案中,父队列有一个对象数组而不是Person,然后必须明确地将所有必需的属性传递给它通过* ngFor创建的。如果这是唯一的方法,那么很好(我不想减损你的帮助),但对我来说,这似乎是很多重复,它依赖于父母意识到孩子需要呈现什么。理想情况下,我希望父母对孩子说“爱,给自己!”而孩子则完成剩下的所有细节。 –
关于字符串提供程序的问题,按照我的理解,我应该能够在构造函数中传递字符串,如此处所示 - https://egghead.io/lessons/angular-2-adding-a-data-model - 在1分钟标记 –
这是一个不由Angular管理的模型类。该类用作数据的简单容器,而不是作为组件,甚至不作为服务,只能由您编写的代码实例化。 –