これは最も洗練された解決策ではありませんが、機能します。アイテムの数が3の倍数(または必要な数の列)でない場合は機能しません。空の項目を配列に追加することができるように修正します。また、コントローラーで手動でソートする必要があります。私が正しくあなたの質問を理解していれば
index.htmlを
<!DOCTYPE html>
<html ng-app="app">
<head>
<title>NG Repeat Column Wrapping</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<script src="./ctrl.js"></script>
</head>
<body ng-controller="ctrl">
<div class="container">
<div class="row" ng-repeat="x in rowsCount">
<div class="col-sm-4">
<span>{{ names[$index] }}</span>
</div>
<div class="col-sm-4">
<span>{{ names[$index + 5] }}</span>
</div>
<div class="col-sm-4">
<span>{{ names[$index + 10] }}</span>
</div>
</div>
</div>
</body>
</html>
ctrl.js
var app = angular.module('app', []);
app.controller('ctrl', function($scope) {
$scope.names = ["Bob", "Susan", "Mark", "John", "Billy", "Ted", "Marcy", "Wilma", "Jeff", "Yasmin", "Pete", "Taylor", "Matthew", "Laney", "Jesus"];
$scope.rowsCount = [];
$scope.createRows = function() {
for (var i = 0; i < ($scope.names.length/3); i++) {
$scope.rowsCount.push(i);
}
};
$scope.createRows();
});
は、列プロパティを使用することができますhttps://jsfiddle.net/mbnmL67m/ – Rob
おそらくされていないことブラウザのサポートとして非常に良いアイデアはそれほど良いものではありません。 –
Columnプロパティは今のところうまく動作しますが、明日の間何かのために必要です。できるだけ早く修正する必要があります。 – BluePrint