अंगुलर 2 में जब ngFor का उपयोग करते हैं तो मुझे एक पाइप के माध्यम से एक सरणी के भीतर किसी ऑब्जेक्ट के लिए मूल अनुक्रमणिका कैसे प्राप्त होगी?कोणीय 2 - एक पाइप के बाद एनजीएफआर सूचकांक
उदाहरण के लिए अगर मैं वस्तुओं की एक सरणी है इस प्रकार है:
list = [{type:"A",id:111},{type:"A",id:222},{type:"B",id:333},{type:"A",id:444},{type:"B",id:555}];
और निम्नलिखित पाइप का उपयोग कर:
@Pipe({
name: 'appFilter',
pure: false
})
export class AppFilterPipe implements PipeTransform {
// Single Argument Filter
transform(values: any[], arg1: any, arg2: any): any {
return values.filter(value => value[arg1] === arg2);
}
}
मैं एक ngFor बनाने इस प्रकार है:
<div *ngFor= "let item of list|AppFilter:'type':'B'|let index=index;trackBy:trackByIndex;">
{{index}} - {{item.id}}
<input [(ngModel)]="list[index]" placeholder="item">
</div>
यहां मुद्दा यह है कि ngFor द्वारा लौटाई गई इंडेक्स ऐपफिल्टर द्वारा लौटाई गई नई सरणी पर आधारित है जो सूचकांक 0 और 1. है इनपुट फ़ील्ड को गलत इंडेक्स का संदर्भ देने का कारण बन जाएगा यानी यह ए ऑब्जेक्ट्स दिखाएगा क्योंकि यह मूल सूची में इंडेक्स 0,1 से मेल खाता है। टाइप बी प्राप्त करने के लिए मुझे वास्तव में सूचकांक 2,4 की आवश्यकता है।
इस के आसपास एक काम की सराहना करें। इसके अलावा घटक में मेरी trackByIndex वर्तमान में लगता है कि:
trackByIndex(index: number, obj: any): any {
return index;
}
मुझे लगता है कि यह सबसे अच्छा होगा filt करने के लिए इससे पहले कि आप 'सूची' को असाइन करें। –