2015-11-16 7 views
13

के बाद सभी ऑब्जेक्ट्स को सरणी में लोड करने के लिए कैसे करें मैं Parse.com का उपयोग अपने बैकएंड के रूप में कर रहा हूं और क्वेरी के बाद मैं पार्स ऑब्जेक्ट के अंदर सभी डेटा के साथ सरणी कैसे भर सकता हूं? मैं री-मैपिंग से कैसे बच सकता हूं? उदाहरण: नाम::क्वेरी Parse.com

$scope.addContList = contacts.map(function(obj) { // re-map!!!! 
    return {name: obj.get("name")}; // mapping object using obj.get() 
}); 

मैं अपने पार्स ऑब्जेक्ट के गुणों एक के बाद एक मानचित्रण कर रहा हूँ obj.get ("नाम"), आदि वहाँ एक बेहतर तरीका है?

$scope.addContList = []; 
    var ActivityContact = Parse.Object.extend("ActivityContact2"); 
    var query = new Parse.Query(ActivityContact); 
    query.equalTo("activityId", $scope.objId); 
    query.find({ 
     success: function(contacts) { 
      console.log("Successfully retrieved " + contacts.length + " contact."); 
       $scope.$apply(function() { 
        /*$scope.addContList = contacts.map(function(obj) { 
         return {name: obj.get("name")}; // mapping object using obj.get() 
        });*/ 
        for (var i = 0; i < contacts.length; i++) { 
          $scope.addContList.push(contacts.ALL_PROPERTIES); // contacts.ALL_PROPERTIES does not exist, I'm looking a way to do that and avoid mapping? 
        } 
       }); 
      console.log("--->>>"+JSON.stringify($scope.addContList, null, 4)); 

     }, 
     error: function(object, error) { 
      // The object was not retrieved successfully. 
      // error is a Parse.Error with an error code and message. 
     } 
    }); 
  1. मैं अंडरस्कोर पुस्तकालय का उपयोग करना चाहिए, कि एक ही रास्ता जाने के लिए है?
  2. मैंने पीएफQuery का उपयोग करके कुछ पीपीएल देखा है, लेकिन मुझे नहीं पता कि यह क्या है, इसके लिए पीएफQuery बेहतर है?

धन्यवाद!

उत्तर

3

अन्य उत्तर सही हैं, लेकिन मुझे लगता है कि यह एक डाइजेस्ट चक्र हर बार शुरू करने के लिए आप contacts से $scope.addContList में कोई आइटम जोड़ने अनावश्यक है करने के लिए। कुछ इस तरह पर्याप्त होना चाहिए:

query.find({ 
    success: function (contacts) { 
    $scope.apply(function() { 
     // 1) shallow-copy the list of contacts... 
     // (this is essentially what you are trying to do now) 
     $scope.addContList = contacts.slice(); 

     // or 2) just assign the reference directly 
     $scope.addContList = contacts; 

     // or 3) transform the Parse.Object instances into 
     // plain JavaScript objects 
     $scope.addContList = contacts.map(function (c) { 
      return c.toJSON(); 
     }); 
    }); 
    }, 
    error: function (object, error) { 
    // The object was not retrieved successfully. 
    // error is a Parse.Error with an error code and message. 
    } 
}); 

विकल्प 1) और 2), जबकि विकल्प 3) की तरह

<div ng-repeat="cont in addContList">{{ cont.name }}</div> 
+0

आपके उत्तर के लिए धन्यवाद! मैं $ scope.addContList को ng-repeat में उपयोग कर रहा हूं इसलिए मुझे इस तरह की वस्तुओं की एक सरणी चाहिए: [{name: "myname1"}, {name: "myname2"}, {name: "myname3 "}]। अगर मैं आपके समाधान का उपयोग करता हूं तो मैं ParseObject को समाप्त कर दूंगा जिसका मैं उपयोग नहीं कर सकता (या कम से कम इतना आसान नहीं)। यदि आप कोड टिप्पणियों को देखते हैं तो मेरे पास है: $ scope.addContList = contact.map (फ़ंक्शन (obj) {return {name: obj.get ("name")};}); मैं उसी कारण से ऑब्जेक्ट को रीमेप कर रहा हूं। – lito

+0

मैं देखता हूं। तो आपके 'contact.map (...)' समाधान में क्या गलत था? –

+0

मुझे लगता है कि वर्बोज़ है और मैं एक बेहतर विकल्प की तलाश में हूं। धन्यवाद! – lito

2

यदि आप

$scope.addContList = contacts[i]; 

बदलने के लिए:

$scope.addContList.push(contacts[i]); 

तुम जाना अच्छा होना चाहिए। आपका पिछला कोड को प्रत्येक तत्व होने के लिए contacts सरणी में तत्व जोड़ने के बजाय फिर से असाइन कर रहा था। तो आपके for लूप के अंत में, $scope.addContList आपके contacts सरणी में अंतिम संपर्क होगा।

+0

के लिए धन्यवाद किया जा सकता है

<div ng-repeat="cont in addContList">{{ cont.get('name') }}</div> 

के लिए इसी तरह एक टेम्पलेट के अनुरूप होगा आपका उत्तर! मैं $ scope.addContList को ng-repeat में उपयोग कर रहा हूं इसलिए मुझे इस तरह की वस्तुओं की एक सरणी चाहिए: [{name: "myname1"}, {name: "myname2"}, {name: "myname3 "}]। अगर मैं आपके समाधान का उपयोग करता हूं तो मैं ParseObject को समाप्त कर दूंगा जिसका मैं उपयोग नहीं कर सकता (या कम से कम इतना आसान नहीं)। यदि आप कोड टिप्पणियों को देखते हैं तो मेरे पास है: $ scope.addContList = contact.map (फ़ंक्शन (obj) {return {name: obj.get ("name")};}); मैं उसी कारण से ऑब्जेक्ट को रीमेप कर रहा हूं। – lito

+0

क्या आप कृपया प्लंकर या जेएसफ़िल्ड पर नमूना प्रदान कर सकते हैं? –

2

बदलें:

$scope.addContList = contacts[i]; 

$scope.addContList.push(contacts[i]); 
+0

आपके उत्तर के लिए धन्यवाद! मैं $ scope.addContList को ng-repeat में उपयोग कर रहा हूं इसलिए मुझे इस तरह की वस्तुओं की एक सरणी चाहिए: [{name: "myname1"}, {name: "myname2"}, {name: "myname3 "}]। अगर मैं आपके समाधान का उपयोग करता हूं तो मैं ParseObject को समाप्त कर दूंगा जिसका मैं उपयोग नहीं कर सकता (या कम से कम इतना आसान नहीं)। यदि आप कोड टिप्पणियों को देखते हैं तो मेरे पास है: $ scope.addContList = contact.map (फ़ंक्शन (obj) {return {name: obj.get ("name")};}); मैं उसी कारण से ऑब्जेक्ट को रीमेप कर रहा हूं। – lito

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