Это потому, что ваш HTML имеет только один <td>
элемента, который вы не повторяющиеся. Поскольку есть только 1, вы получаете всего 1 столбец. Вам нужно будет иметь вложенный ng-repeat
в элементе <td>
, чтобы получить более одного столбца или явно иметь два элемента , определенные в вашем HTML.
Вы можете попытаться написать что-то более сложное, чтобы попытаться определить, когда будет создан новый столбец или строка, но я упростил бы это, создав ваш массив во что-то, что будет немного легче потреблять: по существу 2 -мерный массив. Вот что я хотел бы сделать вместо:
<body ng-app="myApp">
<div ng-controller="myCtrl">
<table>
<tr ng-repeat="row in items">
<td ng-repeat="column in row">{{column}}</td>
</tr>
</table>
</div>
</body>
var myApp = angular.module("myApp", []);
myApp.controller("myCtrl", function($scope) {
$scope.items = [];
$scope.items[0] = ["12", "22"];
$scope.items[1] = ["34", "657"];
$scope.items[2] = ["129", null];
});
https://jsfiddle.net/bntguybm/
Обратите внимание, что если какой-либо из этих массивов должны были содержать более 2 значения, то вы бы также увидеть дополнительные столбцы для строк, содержит эти данные.
Альтернативный способ был бы таким, который гарантировал бы только 2 столбца. Вам понадобится создать массив объектов для вашего объекта items
. Как это:
<body ng-app="myApp">
<div ng-controller="myCtrl">
<table>
<tr ng-repeat="row in items">
<td>{{row.column1}}</td>
<td>{{row.column2}}</td>
</tr>
</table>
</div>
</body>
var myApp = angular.module("myApp", []);
myApp.controller("myCtrl", function($scope) {
$scope.items = [];
$scope.items[0] = {};
$scope.items[0].column1 = "12";
$scope.items[0].column2 = "22";
$scope.items[1] = {};
$scope.items[1].column1 = "34";
$scope.items[1].column2 = "657";
$scope.items[2] = {};
$scope.items[2].column1 = "129";
$scope.items[2].column2 = null;
});
https://jsfiddle.net/6v1701gx/1/
какие столбцы – Sajeetharan
, добавьте второй столбец: '