मैं कैसे की तरह एनजी-दोहराने का उपयोग कर सकते के लिए जावास्क्रिप्ट में?
उदाहरण:
<div ng-repeat="4">Text</div>
मैं 4 बार एनजी-रिपीट के साथ पुनरावृति करना चाहता हूं लेकिन मैं यह कैसे कर सकता हूं?
मैं कैसे की तरह एनजी-दोहराने का उपयोग कर सकते के लिए जावास्क्रिप्ट में?
उदाहरण:
<div ng-repeat="4">Text</div>
मैं 4 बार एनजी-रिपीट के साथ पुनरावृति करना चाहता हूं लेकिन मैं यह कैसे कर सकता हूं?
items..?
जवाबों:
कोणीय एक सीमा के साथ आता है: सीमा फ़िल्टर, यह पहले एक्स आइटम और अंतिम एक्स आइटम को सीमित करने का समर्थन करता है:
<div ng-repeat="item in items|limitTo:4">{{item}}</div>
items
यह सबसे सरल वर्कअराउंड है जिसके बारे में मैं सोच सकता था।
<span ng-repeat="n in [].constructor(5) track by $index">
{{$index}}
</span>
यहाँ एक प्लंकर उदाहरण है।
Error: [$parse:isecfld]
आप जावास्क्रिप्ट सरणी ऑब्जेक्ट में स्लाइस विधि का उपयोग कर सकते हैं
<div ng-repeat="item in items.slice(0, 4)">{{item}}</div>
लघु एन मीठा
item in items|limitTo:4
html में:
<div ng-repeat="t in getTimes(4)">text</div>
और नियंत्रक में:
$scope.getTimes=function(n){
return new Array(n);
};
http://plnkr.co/edit/j5kNLY4Xr43CzcjM1gkj
संपादित करें:
angularjs के साथ> 1.2.x
<div ng-repeat="t in getTimes(4) track by $index">TEXT</div>
t in [1,2,3,4]या t in 'aaaa' आदि :)
[1,2,3,4].. यह एक निराशाजनक समाधान क्या है
@Mpm द्वारा दिया गया उत्तर काम नहीं कर रहा है यह त्रुटि देता है
एक पुनरावर्तक में डुप्लिकेट की अनुमति नहीं है। अद्वितीय कुंजियों को निर्दिष्ट करने के लिए 'ट्रैक बाय एक्सप्रेशन' का उपयोग करें। पुनरावर्तक: {0}, डुप्लिकेट कुंजी: {1}
साथ ही इससे बचने के लिए
एनजी-रिपीट = "टी इन गेटटाइम्स (4)"
उपयोग
$ सूचकांक द्वारा ट्रैक
इस तरह
<div ng-repeat = "t in getTimes (4) track by $ index"> TEXT </ div>
7 बार दोहराने के लिए , लंबाई = 7 के साथ एक सरणी का उपयोग करने का प्रयास करें , फिर इसे $ सूचकांक द्वारा ट्रैक करें :
<span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span>
b=[]एक खाली ऐरे बनाएँ «बी»,
.length=7इसे आकार दें «7»,
&&bनए एरे «बी» को एनजी-रिपीट के लिए उपलब्ध होने दें,
track by $indexजहां «$ इंडेक्स» पुनरावृति की स्थिति है।
ng-bind="$index + 1"1 पर प्रदर्शन शुरू।
X बार दोहराने के लिए :
बस 7 को X से बदलें ।
यहाँ सभी उत्तर यह मानते हैं कि आइटम एक सरणी है। हालाँकि, AngularJS में, यह एक वस्तु भी हो सकती है। उस स्थिति में, न तो सीमा के साथ फ़िल्टर करना और न ही array.slice काम करेगा। एक संभव समाधान के रूप में, आप अपनी वस्तु को एक सरणी में बदल सकते हैं, अगर आपको ऑब्जेक्ट कुंजियों को खोने का मन नहीं है। यहाँ एक फिल्टर का एक उदाहरण है कि:
myFilter.filter('obj2arr', function() {
return function(obj) {
if (typeof obj === 'object') {
var arr = [], i = 0, key;
for( key in obj ) {
arr[i] = obj[key];
i++;
}
return arr;
}
else {
return obj;
}
};
});
एक बार जब यह एक सरणी है, तो स्लाइस या लिमिटेटो का उपयोग करें, जैसा कि अन्य उत्तरों में कहा गया है।