Criando um repetidor dinâmico com transclusão de conteúdo ng com Angular2

O que estou tentando obter é um componente genérico vinculado a uma matriz de objetos arbitrários que permite adicionar e remover linhas dinamicamente quando a exibição de cada linha também é arbitrariamente definida com componentes por um componente mestre que a utiliza.

Observe queMasterComponent é um componente arbitrário que seria implementado para páginas diferentes e deve ser independente e não definido por nenhum metadado ou fonte externa.

O que tenho até agora são os seguintes componentes:

RepeaterComponent template:

<input type="button" value="Add" (click)="addRow()">
<div class="repeater" *ngFor="let row of repeaterArray">
    <div class="repeaterRow">
        <input type="button" value="Remove" (click)="removeRow(row.rowId)">
        <ng-content select="row"></ng-content>
     </div>
</div>

Modelo MasterComponent:

<repeater [repeaterArray]="repeaterObj">
    <row>
        <field-textbox [data]="row.name" [label]="'Name'"></field-textbox>
        <field-textbox [data]="row.description" [label]="'Description'"></field-textbox>
    </row>
</repeater>

o<field-textbox> component é um componente personalizado que eu uso para encapsular entradas simples que contêm alguns dados adicionais que eu preciso usar.

oMasterComponent mantém um objeto que, para esta instância, se parece com isso:

repeaterObj = [
{
    "rowId": 1,
    "name": "First brand",
    "description": "First description"
},
{
    "rowId": 2,
    "name": "Second brand",
    "description": "Second description"
},
{
    "rowId": 3,
    "name": "Third brand",
    "description": "Third description"
}
];

Essa abordagem tem dois problemas para os quais não consigo encontrar uma solução.

O seletor de conteúdo ng é idêntico para todas as linhas quando o ngFor duplica o modelo, o que me deixa com apenas umng-content ponto de transclusão após a renderização.Não há referência aolinha variável da declaração ngFor no<field-textbox> diretivas transcluídas, então não consigo vincular os dados corretamente.

Existe uma abordagem melhor para implementar oRepeaterComponent isso me daria o mínimo de esforço para criar mais novasMasterComponents de diferentes estruturas arbitrárias e modelos diferentes?

questionAnswers(1)

yourAnswerToTheQuestion