2016-04-02 9 views

答えて

67

ng-containertemplateよりも優先されます。

<ng-container *ngIf="expression"> 

を参照してください:それは基本的に問題を解決するだろうが、あなたがコア能力をトレードオフするよ

Angular 2 ng-container

https://github.com/angular/angular.io/issues/2303

+0

HTMLの要素が作成されないことを確認するには、サンプルの "generate" HTMLスニペットを追加する必要があります。 –

4

divを無効なHTMLにするtrに直接入れることはできません。 trはその中に/th/tableという要素しか含まれていません。&の中に他のHTML要素を持つことができます。

あなたは少し*ngFor & tbodyngIf以下のような自体trの上に持っている持っているあなたのHTMLを変更することができます。

<tbody *ngFor="..."> 
    <tr *ngIf="..."> 
    ... 
    </tr> 
    <tr *ngIf="!..."> 
    ... 
    </tr> 
    .. 
</tbody> 
+0

あなたはtbodyと一緒になります。あなたが大きなテーブルを持っているなら、頭を固定することができます。あなたのtbodyはtrとtrの役割を持ち、追加のラッパーの役割を果たすでしょう。頭をスクロールして固定する必要がない場合、これは実用的な解決策です。私が言ったことの私の参考資料:https://www.w3.org/TR/html401/struct/tables.html#h-11.2.3 – sascha10000

19

この方法は、https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-templateで見つかりました。

<template>タグをそのまま使用して、*ngIf[ngIf]のように置き換えてください。

<template [ngIf]="..."> 
    ... 
</template> 
+0

良いですが、* ngIf itslefは 'template'タグを作成します。デフォルトでは、angle指示子prefix with *はテンプレートタグを作成します。両方とも同じ '[ngIf]と* ngIf'です。 –

+1

' * ngIf'を使うと、テンプレートの中に要素があります。特定の状況下では、余分な要素が干渉する可能性があります。 – Teak

+0

'template'タグを' tr'/'td'タグの中に入れることはできますか? –

関連する問題