どのように私は次のようにNG・リピートを使用することができるため、JavaScriptで?
例:
<div ng-repeat="4">Text</div>
ng-repeatを4回繰り返したいのですが、どうすればよいですか?
どのように私は次のようにNG・リピートを使用することができるため、JavaScriptで?
例:
<div ng-repeat="4">Text</div>
ng-repeatを4回繰り返したいのですが、どうすればよいですか?
items
..とは何ですか?
回答:
AngularにはlimitTo:limitフィルターが付属しており、最初のx個のアイテムと最後のx個のアイテムの制限をサポートしています。
<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]
javascript配列オブジェクトでsliceメソッドを使用できます
<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
編集:
anglejs> 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による回答が機能せず、エラーが発生します
リピーターでの複製は許可されていません。'track by'式を使用して、一意のキーを指定します。リピーター:{0}、重複キー:{1}
と一緒にこれを避けるために
ng-repeat = "t in getTimes(4)"
使用する
$ indexで追跡する
このような
<div ng-repeat = "t in getTimes(4)track by $ index">テキスト</ div>
繰り返すには7回、持つ配列を使用するようにしてください長= 7、その後、追跡、それをすることによって $インデックス:
<span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span>
b=[]
空の配列«b»を作成し、その
.length=7
サイズを«7»に設定
&&b
し、新しい配列«b»をng-repeatで使用できるようにします。
track by $index
ここで、«$ index»は反復の位置です。
ng-bind="$index + 1"
1から始まる表示。
X回繰り返すには:7をXに
置き換えるだけです。
ここでのすべての回答は、アイテムが配列であると想定しているようです。ただし、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;
}
};
});
配列になったら、他の回答に記載されているように、sliceまたはlimitToを使用します。