2013-11-21 9 views
7

में नया आइटम धक्का मैं JavaScript ऑब्जेक्ट जो खुदरा विक्रेताओं की एक सूची है हैAngularJS foreach वस्तु

var listRetailers = [ 
{"url":"http://www.fake1.com", "img":"images/1logo.jpg"}, 
{"url":"http://www.fake2.com", "img":"images/2logo.gif"}, 
{"url":"http://www.fake3.com", "img":"images/3logo.gif"}, 
] 

मैं एक नया कुंजी पुश करने के लिए करना चाहते हैं:

object.push("storeNumber": "1"); 

तो: प्रत्येक आइटम में मूल्य अद्यतन जावास्क्रिप्ट वस्तु

var listRetailers = [ 
{"url":"http://www.fake1.com", "img":"images/1logo.jpg", "storeNumber":"1"}, 
{"url":"http://www.fake2.com", "img":"images/2logo.gif", "storeNumber":"1"}, 
{"url":"http://www.fake3.com", "img":"images/3logo.gif", "storeNumber":"1"}, 
] 

हो जाएगा मेरी कोणीय नियंत्रक के भीतर मैं

०१२३५१६४१० है
$scope.retailers = listRetailers ; 

angular.forEach($scope.retailers, function(obj){ 
      obj.push("storeNumber": "1"); 
     }); 

त्रुटि कहता है: ऑब्जेक्ट # में कोई विधि 'पुश'

मैं यहाँ क्या याद आ रही है है?

+0

क्या आपको लगता है कि JSON में कौन सा हिस्सा लगता है? – meagar

+0

@meagar जेसन ऑब्जेक्ट का अद्यतन। –

उत्तर

21

ऐसा इसलिए है क्योंकि obj आपके खुदरा विक्रेता ऑब्जेक्ट को संदर्भित करता है और यह सरणी नहीं है। If you want to add properties to it, आप उन्हें ब्रैकेट [] नोटेशन या डॉट . नोटेशन का उपयोग कर परिभाषित कर सकते हैं।

angular.forEach($scope.retailers, function(obj){ 

    //Using bracket notation 
    obj["storeNumber"] = 1; 

    //Using dot notation 
    obj.storeNumber = 1; 

}); 
+0

इतना आसान यह मुझे मारता है .. –

+0

क्या व्यक्तिगत वरीयता को छोड़कर, एक दूसरे को चुनने का कोई कारण है? –

+2

@ मैथ्यूटी बेकर - बिल्कुल। अधिकांश समय आपको क्लेयरिटी के लिए डॉट नोटेशन का उपयोग करना चाहिए, लेकिन ब्रैकेट नोटेशन आपको उन चीजों को करने की अनुमति देता है जो डॉट नोटेशन का उपयोग करके संभव नहीं हैं। उदाहरण के लिए आप एक गणना की गई संपत्ति नाम 'obj ["base" + num] 'का उपयोग कर सकते हैं, या आप एक पहचानकर्ता चाहते हैं जिसमें वर्ण हैं जो अन्यथा डॉट नोटेशन का उपयोग करके वैध वाक्यविन्यास नहीं होंगे। 'ओबीजे [" मेरे पास रिक्त स्थान हैं "]' – Josh

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