2012-09-25 11 views
8

में कुल पंक्तियों की वापसी संख्या मुझे यह जानने की ज़रूरत है कि कुल संसाधन (App.User) की कुल पंक्तियां कुल में मौजूद हैं।एम्बर डेटा `find` या` findAll` अनुरोध

मैंने इसे प्रतिक्रिया में वापस करने की कोशिश की, लेकिन एम्बर मैप किए गए गुणों के बारे में शिकायत नहीं करता है और केवल रिकॉर्ड्स (users: [ "john", "fred"]) की अपेक्षा करता है। मैं सर्वर को अतिरिक्त क्वेरी नहीं बनाना चाहता हूं।

क्या एम्बर के साथ इसे प्राप्त करने का कोई साफ तरीका है?

+0

+1, मैं इस बारे में सोच रहा था [पेजिनेशन] के संदर्भ में (http://stackoverflow.com/questions/12482977/does-a-pagination-mixin-exist-for-ember-js-yet) – dechov

+0

बिल्कुल! मुझे यह जानने की जरूरत है कि परिणाम सेट में कितने कुल रिकॉर्ड हैं और इसे पेजिनेशन के लिए उपयोग करें ... – korCZis

उत्तर

4

आपको सर्वर को अतिरिक्त क्वेरी नहीं करने की आवश्यकता है। एक बार जब आप सर्वर से डेटा स्टोर में डेटा प्राप्त है, यह रहता है जब तक कि कुछ रिकॉर्ड गंदा है और आप एक store.commit

चलाने तो, तुम कह

users = App.User.find() 

आप बस users.get('length') कर सकते हैं और से पहले अपने रिकॉर्ड प्राप्त करने के बाद आपको लंबाई मिल जाएगी। जब आप ऐसा करते हैं, तो सर्वर के लिए एक अतिरिक्त क्वेरी उत्पन्न नहीं होती है।

4

यदि आप इसे हैंडलबर्स टेम्पलेट में चाहते हैं, तो आप {{this.length}} कर सकते हैं।

0

मैंने अपने एडाप्टर में handleResponse को लागू करके और एम्बर की अपेक्षा के तरीके में प्रतिक्रिया को संशोधित करके इस समस्या को हल किया है।

चलो कहते हैं कि मैं इस के समान सर्वर से प्रतिक्रिया प्राप्त करते हैं:

मेरे handleResponse कार्यान्वयन इस तरह दिखता है:

handleResponse (status, headers, payload, requestData) { 
    let parsedPayload = { 
    users: payload.users, 
    meta: { 
     total: payload.count 
    } 
    }; 
    return this._super(status, headers, parsedPayload, requestData); 
} 

तो मैं एक तरह से मॉडल मेटाडाटा प्राप्त कर सकते हैं Ember documentation specifies it