Javascriptでng-repeat like forを使用するにはどうすればよいですか?
例:
<div ng-repeat="4">Text</div>
ng-repeat を 4 回繰り返したいのですが、どうすればいいですか?
Javascriptでng-repeat like forを使用するにはどうすればよいですか?
例:
<div ng-repeat="4">Text</div>
ng-repeat を 4 回繰り返したいのですが、どうすればいいですか?
Angular には limitTo:limit フィルターが付属しており、最初の x 個のアイテムと最後の x 個のアイテムの制限をサポートしています。
<div ng-repeat="item in items|limitTo:4">{{item}}</div>
javascript配列オブジェクトでスライスメソッドを使用できます
<div ng-repeat="item in items.slice(0, 4)">{{item}}</div>
ショート&スウィート
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>
ここでのすべての回答は、アイテムが配列であることを前提としているようです。ただし、AngularJS では、オブジェクトである可能性もあります。その場合、limitTo や array.slice によるフィルタリングは機能しません。考えられる解決策の 1 つとして、オブジェクト キーを失っても構わない場合は、オブジェクトを配列に変換できます。これを行うフィルターの例を次に示します。
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;
}
};
});
配列になったら、他の回答に記載されているように、スライスまたは limitTo を使用します。