2012-07-04 11 views
5

अक्सर, मुझे एम्बर.एरेप्रोक्सी ऑब्जेक्ट की सामग्री के माध्यम से लूप की आवश्यकता होती है।एम्बरज: ArrayProxy सामग्री के माध्यम से पुन: प्रयास करने का सबसे अच्छा तरीका?

var loc = myArrayProxy.get('length') || 0, 
    newContent = new Array(); 

while(--loc >= 0) { 
    var curObject = myArrayProxy.objectAt(loc); 
    newContent.push({ 
         id: curObject.id, 
         name: curObject.name 
        }); 
} 
:

var loc = myArrayProxy.get('length') || 0, 
    ids = new Array(), 
    idsList; 

while(--loc >= 0) { 
    var curObject = myArrayProxy.objectAt(loc); 
    ids.push(curObject.id); 
} 
idsList = ids.join(','); 

उदाहरण 2, मैं आदिम वस्तुओं (नहीं Ember.Object) की एक सरणी का निर्माण करने की जरूरत है:

उदाहरण 1, मैं आईडी की एक सूची का निर्माण करने की आवश्यकता है

प्रश्न: क्या ऐसा करने का एक बेहतर तरीका है? "जबकि (- loc> = 0)" मुझे बुरा लगता है।

+0

अभी सेवा का उपयोग "getEach() "और" के लिए() "। दस्तावेज़ीकरण में वास्तव में उदाहरणों की कमी है ... धन्यवाद :) –

उत्तर

8

एम्बर.एरेप्रोक्सी कई अनुकूल कार्यों (एम्बर.एरे, एम्बर। अनन्य, ...) के माध्यम से प्रदान करता है। लूप्स को अक्सर "forEach" का उपयोग करके टाला जा सकता है। आपके दूसरे उदाहरण में, आप "मानचित्र" का उपयोग करने पर विचार कर सकते हैं। यहां Ember.ArrayProxy documentation का एक लिंक है। पर देखने के लिए सुनिश्चित करें : Ember.Array और Ember.Enumerable

संपादित करें:

उदाहरण के लिए, आईडी के आदेश मानते हुए प्रासंगिक, अपना पहला उदाहरण लिखा सकता है नहीं कर रहा है हो:

var idsList = myArrayProxy.mapProperty('id').join(','); 
संबंधित मुद्दे

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