के माध्यम से एम्बर-डेटा द्वारा समर्थित एरे कंट्रोलर को सॉर्ट करना मैं ArrayController
को सॉर्ट करने में सक्षम होना चाहता हूं, जिनकी सामग्री एम्बर-डेटा क्वेरी से उत्पन्न होती है। दुर्भाग्यवश, sortProperty
मिक्सिन इस मामले में काम नहीं कर रहा है।सॉर्टप्रोपर्टी मिश्रित
मैं निम्न करने के लिए सक्षम होने के लिए करना चाहते हैं:
[ id: 4, name: banana ]
[ id: 2, name: apple ]
[ id: 6, name: spaghetti ]
यहां मुद्दा यह है:
App = Ember.Application.create();
App.store = DS.Store.create({ revision: 4});
App.Item = DS.Model.extend({
id: DS.attr('string'),
name: DS.attr('string')
});
App.store.createRecord(App.Item, {id: '4', name: 'banana' });
App.store.createRecord(App.Item, {id: '2', name: 'apple'});
App.store.createRecord(App.Item, {id: '6', name: 'spaghetti'});
App.ItemsController = Ember.ArrayController.create({
content: App.store.findAll(App.Item),
sortProperties: ['name']
});
Ember
और एंबर-डेटा के नवीनतम संस्करण के साथ
, इस उत्पादन देता है कि App.store.findAll()
एक RecordArray
देता है जिसकी सामग्री संपत्ति App.Item
उदाहरणों की एक सरणी नहीं है (इस मामले में, सामग्री [2, 3, 4])
उदाहरणों पर वास्तव में मेरे हाथों को पाने के लिए मुझे objectAt()
जैसे कुछ उपयोग करने की आवश्यकता है। लेकिन अगर मैं से App.Item
उदाहरण निकालता हूं और उन्हें सामान्य सरणी में डंप करता हूं, तो चीजें अपेक्षा के अनुसार काम नहीं करती हैं।
क्या मुझे ऐसा करने का स्पष्ट तरीका याद आ रहा है, या क्या यह ढांचे की वर्तमान स्थिति है? मुझे बस अपने सभी मॉडलों को बस क्रमबद्ध करने के लिए सादा वस्तुओं के रूप में दोहराना नहीं होगा।
संपादित करें:
मैं अपने स्वयं के कस्टम ArrayController
बनाकर समस्या के समाधान मिल गया। फिर भी, अगर चीजें ऊपर की तरह काम करती हैं तो यह अच्छा होगा।
संपादित करें # 2:
मूल Handlebars टेम्पलेट: (। इसके अलावा, मैं ऊपर मेरी कोड में sortProperties
के बजाय एक sortProperty
संपत्ति का इस्तेमाल किया था, लेकिन वह सिर्फ एक टाइपो था)
<script type="text/x-handlebars">
{{#each App.ItemsController.content }}
<p>[ id: {{id}}, name: {{name}} ]</p>
{{/each}}
</script>
और हाँ, एक के बजाय का उपयोग करता है, तो
<script type="text/x-handlebars">
{{#each App.ItemsController.arrangedContent }}
<p>[ id: {{id}}, name: {{name}} ]</p>
{{/each}}
</script>
फिर हम मिल हम क्या चाहते हैं:
[ id: 2, name: apple ]
[ id: 4, name: banana ]
[ id: 6, name: spaghetti ]
द्वारा पर ठोकर मुझे माफ करना, आप नहीं एक विशेष रूप से किया है यहां क्या काम नहीं कर रहा है, यह समझाने का अच्छा काम है, क्या आप कृपया अपने हैंडलबर्स टेम्पलेट को अंदर रख सकते हैं। मुझे लगता है कि एक छोटी सी समस्या है जहां कभी-कभी आपको सही ऑर्डर करने के लिए 'ArrayController' के' व्यवस्थित सामग्री 'मान से जोड़ना पड़ता है। –