DIV内のng-ifに関する以前の投稿を参照するには、ここにあるリンクを参照してください:: DIV内のNg-If 、しかし、tdでng-repeatを使用してテーブル内のng-ifで同じことを試みたとき、うまく機能していないようです。間違っている場合は修正してください。条件に基づいて列を2回表示しようとしましたが、何も動作しません。以下に参照用のコードを示しました。誰かがこれで私を助けることができますか?さらに説明が必要な場合はお知らせください。
[〜#〜] html [〜#〜]
Try :: 1
<table>
<tr ng-repeat = "data in comments">
<td ng-if="data.type == 'hootsslllll' ">
//differnt template with hoot data
</td>
<td ng-if="data.type == 'story' ">
//differnt template with story data
</td>
<td ng-if="data.type == 'article' ">
//differnt template with article data
</td>
</tr>
</table>
Try :: 2
<table>
<tr ng-repeat = "data in comments">
<div ng-if="data.type == 'hootsslllll' ">
<td> //differnt template with hoot data </td>
</div>
<div ng-if="data.type == 'story' ">
<td> //differnt template with story data </td>
</div>
<div ng-if="data.type == 'article' ">
<td> //differnt template with article data </td>
</div>
</tr>
</table>
ng-if
は、try :: 1で機能するはずです。ここにフィドル作業例があります
ほとんどのブラウザは、テーブル構造内のその他のDOM要素が適切に構成されていない場合、それを無視します。つまり、上記のコードでは、div
内にtr
タグを含めることはできません。代わりにこれを試してください
<table>
<tr ng-repeat = "data in comments">
<td ng-if="data.type == 'hootsslllll' "> //differnt template with hoot data </td>
<td ng-if="data.type == 'story' "> //differnt template with story data </td>
<td ng-if="data.type == 'article' "> //differnt template with article data </td>
</tr>
</table>
ブラウザーのセマンティクスを強化するために、内部を使用しないでください。さらに、等式のRHSで値の型を確認したい場合は、等式をチェックするときに「===」の方が適切なオプションです。
これは両方の<table>
および<div>
個別に
<div ng-controller="tableCtrl">
<div ng-repeat="data in comments">
<div ng-if="data.type === 'hootsslllll' ">//differnt template with hoot data</div>
<div ng-if="data.type === 'story' ">//differnt template with story data</div>
<div ng-if="data.type === 'article' ">//differnt template with article data</div>
</div>
</div>