ng-repeat
コレクションを反復処理するために使用できることを知っています。範囲を反復処理するにはどうすればよいですか。たとえば、次のようなものです。
<div class='aoeu' ng-repeat='count in range(1,5)'>
<div id='{{count}}'></div>
</div>
ng-repeat
コレクションを反復処理するために使用できることを知っています。範囲を反復処理するにはどうすればよいですか。たとえば、次のようなものです。
<div class='aoeu' ng-repeat='count in range(1,5)'>
<div id='{{count}}'></div>
</div>
Javascript には range() 関数はありませんが、ニーズに合った値の配列を返す関数を作成するか、その効果のために JS ライブラリを使用できます。私はunderscore.jsを非常に簡単に使用します:
<div class='aoeu' ng-repeat='count in _.range(1,5)'>
<div id='{{count}}'></div>
</div>
もちろん、Angular アプリ (ディレクティブなど) でアンダースコアを使用できるようにするには、それをスコープに含める必要があります。プロジェクトにunderscore.jsを含め、メインコントローラーで$rootScope._ = _
このように、Angular のコントローラーまたはディレクティブは $scope._ (アンダースコア ライブラリを参照する) を認識し、上記のスニペットが機能します! (任意の範囲を作成することだけが必要な場合は、範囲関数を自分で作成できます。「make」とは、利用可能な100万の利用可能な例のいずれかをコピーすることを意味します..ここに1つがあります)
アンダースコアが最も表現力が高いようですが、次の回答をご覧になることをお勧めします: AngularJS ng-options create range
フィルターを使用して配列を作成します。ここに私のバージョンがあります
var App = angular.module('app', []);
App.filter('range', function() {
return function(arr, lower, upper) {
for (var i = lower; i <= upper; i++){
arr.push(i);
}
return arr;
};
});
次のように使用します。
<li ng-repeat="n in [] | range:5:10"> {{n}} </li>
そしてJSFiddle http://jsfiddle.net/jaimem/hKvNc/4/
pd:parseInt
文字列を整数に変換したい場合は、. を渡すことを忘れないでくださいradix
。私がリンクした回答では、解析時に と が欠落していmin
ますmax
。