आपके सुझावों के लिए धन्यवाद, आपने मुझे सही रास्ते पर ले लिया!
आइए पूर्ण विवरण के लिए जाएं:
डिफ़ॉल्ट रूप से AngularJS http प्राप्त क्वेरी एक वस्तु देता है
इसलिए यदि आप @ एरियल Array.prototype.chunk फ़ंक्शन का उपयोग करना चाहते हैं, तो आपके पास ऑब्जेक्ट को एक सरणी में बदलने के लिए सबसे पहले है।
और फिर अपने नियंत्रण में चंक फ़ंक्शन का उपयोग करने के लिए अन्यथा यदि सीधे एनजी-रिपीट में उपयोग किया जाता है, तो यह आपको एक त्रुटि त्रुटि में लाएगा । अंतिम नियंत्रक दिखता है:
// Initialize products to empty list
$scope.products = [];
// Load products from config file
$resource("/json/shoppinglist.json").get(function (data_object)
{
// Transform object into array
var data_array =[];
for( var i in data_object ) {
if (typeof data_object[i] === 'object' && data_object[i].hasOwnProperty("name")){
data_array.push(data_object[i]);
}
}
// Chunk Array and apply scope
$scope.products = data_array.chunk(3);
});
और HTML बन जाता है:
<div class="row" ng-repeat="productrow in products">
<div class="col-sm-4" ng-repeat="product in productrow">
दूसरी तरफ, मैंने अपनी JSON फ़ाइल से ऑब्जेक्ट {} के बजाय सीधे एक सरणी [] वापस करने का फैसला किया। इस तरह, नियंत्रक बन जाता है (कृपया विशिष्ट सिंटैक्स ध्यान दें : सही है ):
// Initialize products to empty list
$scope.products = [];
// Load products from config file
$resource("/json/shoppinglist.json").query({method:'GET', isArray:true}, function (data_array)
{
$scope.products = data_array.chunk(3);
});
HTML ऊपर के समान ही रहती है।
OPTIMIZATION
सस्पेंस में आखिरी सवाल यह है कि चंक फंक्शन के साथ जावास्क्रिप्ट ऐरे को बिना बढ़ाए इसे 100% एंगुलरज कैसे बनाया जाए ... अगर कुछ लोग हमें दिखाने में दिलचस्पी रखते हैं अगर एनजी-रिपीट-स्टार्ट और एनजी-रिपीट-एंड जाने का तरीका है .. । मैं उत्सुक हूँ ;)
एंड्रयू का समाधान
@Andrew की बदौलत, अब हम जानते हैं कि हर तीन (या जो भी संख्या) तत्व बूटस्ट्रैप क्लियरफिक्स क्लास को जोड़ते हैं, वे डिफरेंशेंट्स ब्लॉक की हाइट से डिस्प्ले प्रॉब्लम को ठीक करते हैं।
तो HTML बन जाता है:
<div class="row">
<div ng-repeat="product in products">
<div ng-if="$index % 3 == 0" class="clearfix"></div>
<div class="col-sm-4"> My product descrition with {{product.property}}
और आपका नियंत्रक हटाए गए चंक फ़ंक्शन के साथ काफी नरम रहता है :
// Initialize products to empty list
$scope.products = [];
// Load products from config file
$resource("/json/shoppinglist.json").query({method:'GET', isArray:true}, function (data_array)
{
//$scope.products = data_array.chunk(3);
$scope.products = data_array;
});