क्या मैं ngIfएक अतिरिक्त कंटेनर तत्व के बिना उपयोग कर सकता हूं ?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
यह तालिका में काम नहीं करता है क्योंकि यह अमान्य HTML बना देगा।
क्या मैं ngIfएक अतिरिक्त कंटेनर तत्व के बिना उपयोग कर सकता हूं ?
<tr *ngFor="...">
<div *ngIf="...">
...
</div>
<div *ngIf="!...">
...
</div>
</tr>
यह तालिका में काम नहीं करता है क्योंकि यह अमान्य HTML बना देगा।
जवाबों:
ng-containerअधिक पसंद किया जाता है template:
<ng-container *ngIf="expression">
देख:
मुझे इसके लिए एक विधि मिली: https://angular.io/docs/ts/latest/guide/template-syntax.html####-template ।
आप बस का उपयोग कर सकते <template>टैग और की जगह *ngIfके साथ [ngIf]इस तरह।
<template [ngIf]="...">
...
</template>
templateटैग बनाता है , डिफ़ॉल्ट रूप से कोणीय निर्देशों के साथ * एक टेम्पलेट टैग बनाता है। इसलिए दोनों समान हैं[ngIf] and *ngIf
*ngIfटेम्प्लेट के अंदर एक तत्व होता है, यदि आप templateस्वयं लिखते हैं तो आप ऐसा नहीं करते हैं । कुछ परिस्थितियों में अतिरिक्त तत्व हस्तक्षेप कर सकता है।
templateटैग tr/ tdटैग लगा सकते हैं ?
*ngIf="foo"रैपिंग <template [ngIf]="foo">टैग के बराबर है । संक्षेप में, template+ []== *, तो []! = *। को छोड़कर* किसी भी तत्व में समझ है । template
आप divसीधे अंदर नहीं डाल सकते tr, इससे अमान्य HTML बन जाएगा। trइसमें केवल td/ th/ tableतत्व हो सकते हैं और उनके अंदर आपके अन्य HTML तत्व हो सकते हैं।
आप थोड़ा अपने HTML को बदलने के लिए कर सकता है *ngForखत्म हो गया tbodyऔर राशि ngIfसे अधिक trके नीचे ही पसंद है।
<tbody *ngFor="...">
<tr *ngIf="...">
...
</tr>
<tr *ngIf="!...">
...
</tr>
..
</tbody>