2016-06-23 5 views
-4

Другие ответы:Двумерный массив в AngularJS

AngularJS multidimensional Array

Nested ng-repeat for multidimensional array

-

Оригинальный вопрос:

Как создать двухмерный массив в виде таблицы с ng-repeat?

this.boardArr = [ 
      [1,6,3], 
      [5,2,7], 
      [9,10,11], 
     ] 

Это не работает:

<table class="game-board" ng-controller="GameBoardController as gameBoard"> 
    <tr ng-repeat="row in boardArr"> 
     <td ng-repeat="col in row">{{boardArr[row][col]}}</td> 
    </tr> 
</table> 
+0

вы знакомы с контроллером вида-модели механизма в угловой? – AranS

ответ

1

Вы должны создать таблицу в вашей точке зрения, как это:

<table class="game-board" ng-controller="GameBoardController as gameBoard"> 
    <tr ng-repeat="row in boardArr"> 
     <td ng-repeat="col in row">{{ col }}</td> 
    </tr> 
</table> 

Так ng-repeat Переберет boardArr, а затем вы можете отобразить значения в разных ячейках, как я делал выше. Вам не нужно получать доступ к значению, которое вы хотите отобразить следующим образом: boardArr[row][col], потому что col уже содержит значение boardArr[row][col].

+0

Dont Repeat Yourself :) – Pumych

+0

В чем проблема? – miquelarranz

+0

Ну, я начал разрабатывать ответ, когда ваш вопрос не содержал никакого кода. У вас есть код, отредактированный выше. Надеюсь, это поможет вам. – miquelarranz

0

Вы должны были бы петлю над рядами, а затем их столбцы, как это:

<table> 
    <tr ng-repeat="row in $ctrl.boardArr"> 
     <td ng-repeat="col in row>{{col}}</td> 
    </tr> 
</table> 
2

Э.Г. при использовании вложенных директив нг-повтора, как этот

var app = angular.module('app', []); 
 

 
app.controller('myController', function ($scope) { 
 
    $scope.myArr = [ 
 
    [1,6,3], 
 
    [5,2,7], 
 
    [9,10,11], 
 
    ]; 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="app"> 
 
    <div ng-controller="myController"> 
 
    <table> 
 
     <tr> 
 
     <th>optional heading 1</th> 
 
     <th>optional heading 2</th> 
 
     <th>optional heading 3</th> 
 
     </tr> 
 
     <tr ng-repeat="subArr in myArr"> 
 
     <td ng-repeat="val in subArr">{{ val }}</td> 
 
     </tr> 
 
    </table> 
 
    </div> 
 
</body>