Olá pessoal estou tentando desenvolver 2 componentes reusaveis para um dropdown (select do html) eu espero como sintaxe final para o componente ser montado o seguinte:
<ui-select>
<ui-option *ngFor="let team of teams" [value]='team.id'>{{team.value}}</ui-option>
</ui-select>
Eu desenvolvi os seguintes componentes:
select.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'ui-select',
templateUrl: './select.component.html'
})
export class SelectComponent {
}
select.component.html
<select>
<ng-content></ng-content>
</select>
option.component.ts
import { Component, Input } from '@angular/core';
@Component({
selector: 'ui-option',
templateUrl: './option.component.html'
})
export class OptionComponent {
@Input() value:any;
constructor() {
this.value = '';
}
}
option.component.html
<option [value]="value"><ng-content></ng-content></option>
Mas a marcação final do html é gerada com o componente ui-option junto que faz o html quebrar para um select que espera imediatamente um option:
<ui-select _ngcontent-c0="">
<select>
<!--bindings={"ng-reflect-ng-for-of": "[object Object],[object Object"}-->
<ui-option _ngcontent-c0="" ng-reflect-value="1">
<option value="1">team 1</option>
</ui-option>
<ui-option _ngcontent-c0="" ng-reflect-value="2">
<option value="2">team 2</option>
</ui-option>
</select>
</ui-select>
O gostaria de remove esse wrapping gerando o componente:
<ui-select _ngcontent-c0="">
<select>
<!--bindings={"ng-reflect-ng-for-of": "[object Object],[object Object"}-->
<option value="1">team 1</option>
<option value="2">team 2</option>
</select>
</ui-select>
Como eu conseguiria atingir esse objetivo ? Alguma ajuda ?