Angular 2: dos directivas estructurales sobre el mismo elemento DOM [duplicado]
Esta pregunta ya tiene una respuesta aquí:
* ngIf y * ngFor en el mismo elemento que causa error 13 respuestasMientras jugaba con Angular 2, me encontré con un problema: aparentemente no puedo poner dos directivas estructurales (ngFor
, ngIf
) en el mismo elemento DOM.
En Angular 1 esto solía funcionar. porejemplo:
<div ng-repeat="item in items" ng-if="$even">{{item}}</div>
Cuando intento algo similar conAngular 2:
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<div *ngFor="#item of items; #e = even" *ngIf="e">{{item}}</div>
</div>
`,
directives: []
})
export class App {
constructor() {
this.items = ["a","b","c"]
}
}
No pasa nada. Ni siquiera un error.
Si pongo elngIf
directiva sobre un elemento hijo,funciona:
<div *ngFor="#item of items; #e = even"><div *ngIf="e">{{item}}</div></div>
Pero el problema es que no quiero agregar un elemento hijo solo por eso. Si, por ejemplo, es un<tr>
etiqueta dentro de una tabla, luego agrega undiv
adentro hará que el DOM sea extraño.
Sé que Angular 2 todavía está en versión beta, pero me pregunto si es un error, una característica o tal vez hay una forma indocumentada de lograr lo que quiero.