5

मैं जो इस तरह दिखता है एक गतिशील डेटा मॉडल एक WebSocket द्वारा आने, साथ एनजी-दोहराने पर orderBy का उपयोग करना:एक बहुआयामी सरणी

var results = [ 
    [ 
     {name:'A'}, 
     {price: 0.00} 
    ], 
    [ 
     {name:'C'}, 
     {price: 0.00} 
    ], 
] 

इस प्रकार मैं अपने एनजी-दोहराने उपयोग कर रहा हूँ:

ng-repeat="result in results" 

जब भी मैं परिणाम सरणी के भीतर सरणियों में से एक का उपयोग करने की जरूरत है मैं करता हूँ:

result[0].name 

मुद्दा मैं आ रही है कि ord ngRepeat पर erBy फिल्टर मुझे ऐसा करने की अनुमति प्रतीत होता है नहीं:

ng-repeat="result in results | orderBy: result[0].name 

शायद यह कैसे काम करता है कोणीय की एक बुनियादी गलतफहमी है, लेकिन मैं समझने के लिए क्यों यह काम नहीं होगा असफल। क्या यह गलत वाक्यविन्यास है, या यह मेरे डेटा मॉडल गतिशील होने के कारण है? क्या मुझे $ स्कोप स्थापित करना चाहिए। $ कहीं कहीं आवेदन करें?

मैंने उद्धरणों के साथ प्रयास किया है, और मैंने उस फ़ंक्शन में एक अनुमान स्थापित करने का प्रयास किया है जो प्रारंभ में डेटा को पार करता है, जिसके परिणामस्वरूप परिणाम.नाम के प्रत्येक उदाहरण को भविष्यवाणी करता है, लेकिन यह भी नहीं करता है काम।

किसी भी मदद की बहुत सराहना की जाती है।

+0

पढ़ 'orderBy' डॉक्स, वे बताएं कि आपको क्या – charlietfl

+0

@tymeJV पूछ रहे हैं: समस्या यह है कि दिए गए सरणी सरणियों, नहीं एकल वस्तुओं शामिल हैं। –

+0

@ हिमेटअवार - आह, मेरी पहली नज़र में नहीं देखा। – tymeJV

उत्तर

10

यह प्रश्न वास्तव में दिलचस्प है। चूंकि ऑर्डर वर्तमान ऑब्जेक्ट का उपयोग करेगा, आपको ऑर्डर स्ट्रिंग को अपेक्षाकृत असाइन करना होगा।

इस चाल करना होगा:

ng-repeat="result in results | orderBy: 'this[0].name' 
+0

शानदार! धन्यवाद एक गुच्छा @ हिमेटअवार, वह बिल्कुल था। –

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