पर आधारित "ngFor" लूप के अंदर आइटम्स को फ़िल्टर करने के लिए कैसे करें, मुझे ड्रॉप-डाउन सूची में श्रेणी बदलकर ngFor
लूप के अंदर आइटम फ़िल्टर करने की आवश्यकता है। इसलिए, जब सूची से कोई विशेष श्रेणी चुनी जाती है, तो उसे केवल उसी श्रेणी वाले आइटम सूचीबद्ध करना चाहिए।ऑब्जेक्ट प्रॉपर्टी स्ट्रिंग
एचटीएमएल टेम्पलेट:
<select>
<option *ngFor="let model of models">{{model.category}}</option>
</select>
<ul class="models">
<li *ngFor="let model of models" (click)="gotoDetail(model)">
<img [src]="model.image"/>
{{model.name}},{{model.category}}
</li>
</ul>
आइटम सरणी:
export var MODELS: Model[] = [
{ id: 1,
name: 'Model 1',
image: 'img1',
category: 'Cat1',
},
{ id: 2,
name: 'Model 2',
image: 'img2',
category: 'Cat3',
},
{ id: 3,
name: 'Model 3',
image: 'img3',
category: 'Cat1',
},
{ id: 4,
name: 'Model 4',
image: 'img4',
category: 'Cat4',
},
...
];
इसके अलावा, ड्रॉप-डाउन सूची दोहराया शामिल श्रेणी नाम। इसके लिए केवल अद्वितीय श्रेणियों (तार) को सूचीबद्ध करना आवश्यक है।
मुझे पता है कि कस्टम पाइप बनाना यह करने का सही तरीका होगा, लेकिन मुझे नहीं पता कि एक कैसे लिखना है।
Plunker: http://plnkr.co/edit/tpl:2GZg5pLaPWKrsD2JRted?p=preview
घटक कोड में यह फ़िल्टरिंग * क्यों नहीं करते? * आप ऐसा कर सकते हैं उदा। '* ngFor =" फ़िल्टर किए गए मॉडल का मॉडल दें "और लिखने के लिए 'फ़िल्टर किए गए मॉडल() {...}' लिखें। आप 'select' तत्व के लिए अद्वितीय प्रविष्टियों की एक सरणी देने के लिए वही काम कर सकते हैं। – jonrsharpe
* "मुझे पता है कि एक कस्टम पाइप बनाना यह करने का सही तरीका होगा" * - आपको उस निष्कर्ष के लिए क्या प्रेरित किया? * "लेकिन मुझे नहीं पता कि एक कैसे लिखना है" * - तो क्या आपने * सीखने पर विचार किया है? * – jonrsharpe
निश्चित जोनशर्पे :)। मैं इस पर एक नौसिखिया हूं और मुझे उम्मीद है कि मुझे सही रास्ता मिल जाएगा। मैंने कोणीय 2 को फ़िल्टर करने के बारे में बहुत सी पोस्ट पढ़ी हैं, कस्टम पाइप मुख्य रूप से सही विकल्प के रूप में संदर्भित हैं .. – gundra