Javascript AngularJS-一级数组上来自ng repeat的表
我有一个包含N个元素的数组:Javascript AngularJS-一级数组上来自ng repeat的表,javascript,arrays,angularjs,angularjs-ng-repeat,html-table,Javascript,Arrays,Angularjs,Angularjs Ng Repeat,Html Table,我有一个包含N个元素的数组: $scope.arr = ["1","2","3" ... ,"N"] 我需要从中创建一个包含X列和N/X行的表 我可以使用ng repeat来实现它吗 我知道我可以将数组操作为以下格式: $scope.arr=[[1,2,3],[4,5,6]…],然后我可以使用嵌套的ng repeat 但我想知道是否有可能在一个一级阵列上完成这项工作。这是一个很好的问题。这就是我想到的: var-app=angular.module'app',[]; 应用程序控制器'home
$scope.arr = ["1","2","3" ... ,"N"]
我需要从中创建一个包含X列和N/X行的表
我可以使用ng repeat来实现它吗
我知道我可以将数组操作为以下格式:
$scope.arr=[[1,2,3],[4,5,6]…],然后我可以使用嵌套的ng repeat
但我想知道是否有可能在一个一级阵列上完成这项工作。这是一个很好的问题。这就是我想到的: var-app=angular.module'app',[]; 应用程序控制器'homeCtrl',函数$scope{ $scope.x=3; $scope.arr=[]; 对于i=0;i<100;i++{ $scope.arr.pushi } $scope.getColumns=函数{ 返回新数组$scope.x } $scope.getRows=函数{ 返回新的ArrayMath.ceil$scope.arr.length/$scope.x } }; 柱: {{arr[idx*x+idy]}
XLet的定义在哪里,比如$scope.X=5,区别是什么?很好,但是不需要控制器就可以做到?只有纯HTML和ng重复技巧?@cheziHoyzer,嗯,这很棘手,我不这么认为,但如果说我从中学到了什么,那就是总有人能做到。尽管如此,仍有一些计算正在进行,您需要控制器,并且行计数需要在td repeat中可用。所以不,我不这么认为。我想既然您使用了$scope.arr=[],使用控制器就可以了。当然,我需要控制器-每个视图都需要一个控制器。但是我想,因为这只是视图操作,可能所有的逻辑都需要在视图中,也许我应该使用过滤器。。
<div ng-app='myApp' ng-controller="Main">
<table>
<tr ng-repeat="r in rows()">
<td ng-repeat="c in columns(r)">{{ c }}</td>
</tr>
</table>
</div>
var myApp = angular.module('myApp', []);
myApp.controller('Main', function($scope){
$scope.arr = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18"];
$scope.columnCount = 2;
$scope.rows = function(){
var input = [];
for (var i=0; i< $scope.arr.length / $scope.columnCount; i++) input.push(i);
return input;
};
$scope.columns = function(row){
var start = row * $scope.columnCount;
var end = start + $scope.columnCount;
var input = [];
for (var i=start; i< end; i++) input.push($scope.arr[i]);
return input;
};
});