Angular ng-container ?と同等のAngularJSですか?
または、トランスクルードディレクティブを使用して自分で何かを作成する必要がありますか?
ユースケースの例:
セルのインターレースペア、トリプルなどのテーブル:
<table><tr>
<ng-container ng-repeat="item in items">
<td>{{ item.a }}</td>
<td>{{ item.b }}</td>
</ng-container>
</tr></table>
DOMツリーに追加のレベルがあってはならず、代わりに<td>
sは<tr>
要素の直接の子であるべきです。
HTMLリスト、特に<dt>
/<dd>
要素が<dl>
の直接の子であるが通常ペアで存在する定義リストでは、同様の問題があります。
display:grid
を使用したテーブルのようなデータの配置:
<div style="display: grid; grid-template-columns: auto auto">
<ng-container ng-repeat="item in items">
<div>{{ item.a }}</div>
<div>{{ item.b }}</div>
</ng-container>
</div>
DOMツリーに存在するコンテナ要素は、子ではなくセルとしてレンダリングされるため、レイアウト全体が破損するため、この場合はさらに問題になります。
あなたが言及した場合には、それぞれng-repeat-start
とng-repeat-end
のペアを使用できます:
セルのインターレースペア、トリプルなどのテーブル:
<table><tr>
<td ng-repeat-start="item in items">{{ item.a }}</td>
<td ng-repeat-end>{{ item.b }}</td>
</tr></table>
HTMLリスト:
<dl>
<dt ng-repeat-start="item in items">{{ item.term }}</dt>
<dd ng-repeat-end>{{ item.definition }}</dd>
</dl>
Display:gridを使用したテーブルのようなデータの配置:
<div style="display: grid; grid-template-columns: auto auto">
<div ng-repeat-start="item in items">{{ item.a }}</div>
<div>{{ item.b }}</div>
<div ng-repeat-end>{{ item.c }}</div>
</div>
これについては、APIリファレンスで読むことができます。 https://docs.angularjs.org/api/ng/directive/ngRepeat#special-repeat-start-and-end-points
Angularjs
とng-container
の両方で同じ Angular-2
を使用することもできます。ただし、angular-2
には ng-template
という追加オプションがあり、これは ng-container
として機能します
残念ながら、AngularJSでは、マークアップに存在するHTML要素でng-repeat
、ng-if
などを使用する必要があります。正確なユースケースによっては、replace: true
で要素ディレクティブを使用してみることができます。