2016-01-30 9 views
6

कोणीय 2 के साथ खेलते समय, मुझे एक समस्या आई है: स्पष्ट रूप से मैं दो संरचनात्मक निर्देश (ngFor, ngIf) को उसी DOM तत्व पर नहीं डाल सकता।
कोणीय 1 में यह काम करता था। example के लिए:कोणीय 2 - एक ही डीओएम तत्व पर दो संरचनात्मक निर्देश

<div ng-repeat="item in items" ng-if="$even">{{item}}</div> 

जब मैं Angular 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"] 
    } 
} 

कुछ नहीं होता। एक त्रुटि भी नहीं।

अगर मैं एक बच्चे के तत्व पर ngIf निर्देश शब्दों में कहें, it works:

<div *ngFor="#item of items; #e = even"><div *ngIf="e">{{item}}</div></div> 

लेकिन समस्या यह है कि मैं सिर्फ इतना है कि के लिए एक बच्चे तत्व जोड़ने के लिए नहीं करना चाहती है। यदि, उदाहरण के लिए, यह एक तालिका के अंदर <tr> टैग है, तो अंदर div जोड़कर डोम अजीब बना देगा।

मुझे पता है कि कोणीय 2 अभी भी बीटा में है, लेकिन मुझे आश्चर्य है कि यह एक बग, एक सुविधा है, या शायद मैं जो चाहता हूं उसे प्राप्त करने के लिए एक अनियंत्रित तरीका है।

+2

AFAIK यह अभी समर्थित नहीं है। एक निर्देश के लिए स्पष्ट रूप '' टेम्पलेट [ngFor]> 'का उपयोग करना और टेम्पलेट की सामग्री पर दूसरे के लिए संक्षिप्त रूप' * ngIf' हालांकि काम करना चाहिए। –

+0

@ गुंटर ज़ोचबॉयर, मैंने सफलता के बिना स्पष्ट 'टेम्पलेट' फॉर्म की कोशिश की, – yarons

+0

क्या आप कृपया इस प्रयास का कोड भी जोड़ सकते हैं? –

उत्तर

3

दो संरचनात्मक निर्देश एक तत्व पर समर्थित नहीं हैं। यह भी देखें https://github.com/angular/angular/issues/4792

आंतरिक के लिए बाहरी और माइक्रो वाक्यविन्यास के लिए template syntax का उपयोग करते समय उन्हें घोंसला दें।

संबंधित मुद्दे