在Angular 2中创建通用列表迭代器

时间:2016-10-13 15:33:53

标签: angular

我想包装一个项目列表,但我希望能够灵活地提供一个独特的模板。

<list [items]="someItems">
    <book-list-item><!-- Books, cars, dogs, whatever -->
    </book-list-item><!-- This will contain a unique template -->
</list>

ListItemComponent

import { Component, Input } from '@angular/core';

@Component({
    selector: 'list-item',
    template: `
        <div *ngFor="let item of items">
            <ng-content></ng-content><!-- Whatever book-list-item contains -->
        </div>`
})
export class ListItemComponent {
    @Input() items: Array<any>;
}

BookListItemComponent

import { Component } from '@angular/core';

@Component({
    selector: 'book-list-item',
    template: `
        <div class="row">
            <div class="col-xs-6">Books</div>
            <div class="col-xs-6">Rule</div>
        </div>`

})
export class BookListItemComponent {}

显然,我将书籍作为项目传递,但这只是一个例子。我可以得到类似于这个工作的东西,但是&#34;书籍规则&#34;仅在最后一个list-group-item中打印出来(因为Bootstrap)。

我真的希望了解如何将通用组件传递给父组件,该组件将作为项列表中的项迭代通用组件。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

看看this article。它的功能与您的需求非常相似。你的主要挑战将是约束价值观。您还可以查看Ben Nadel's article。它与RC1有关,甚至他在评论中都提到setLocal不再存在,你需要传递上下文。