Pracuję nad aplikacją AngularJS, która tworzy arkusz kalkulacyjny z tablicy 2D zbudowanej przez funkcję ng-repeat
. Obecnie piszę funkcję, która zmieni początkowe wartości tablicy, gdy użytkownik wprowadzi nowe wartości w arkuszu kalkulacyjnym. To wymaga ode mnie dostępu do punktu w początkowej tablicy na podstawie indeksu wiersza i indeksu kolumny, więc mogę zmienić ją na nową wartość.
Zerknąłem na ng-repeat API i odkryłem, że ma on właściwość $index
, która pozwala mi sprawdzić indeks bieżącej powtarzanej wartości. Jednak jestem stwierdzenia, że to będzie tylko niech mi sprawdzić indeks wartości cokolwiek powtarzać pętla jesteś w środku. - żadne inne pętle poza tym może pojawić się również w
<script>
data = [
[A1, B1, C1],
[A2, B2, C2],
[A3, B3, C3]
]
sheet= function($scope, $parse){
$scope.columns = [colA, colB, colC];
$scope.rows = data.length;
$scope.cells = {};
$scope.outer = data.map(function(c,row){
return c.map(function(data, ind){
return {
content: data,
model: null,
};
});
});
};
</script>
<div ng-app ng-controller="sheet">
<table>
<tr class="column-label">
<td ng-repeat="column in columns">{{column}}</td>
<tr ng-repeat="inner in outer">
<td class="row-label" ng-repeat="data in inner">
<div>
<input type="text" ng-model="data.content" value="{{data.content}}">
</div>
</td>
</tr>
</table>
</div>
Chcę otworzyć $index
z outer
w pętli inner
, a także mieć dostęp do $index
z inner
. Czy jest jakiś sposób na zrobienie tego? Mam zamiar przekazać te wartości jako parametry do funkcji, którą piszę.
Może jest bardziej prosta odpowiedź, ale ja byłbym w stanie tak po prostu s tart sprawdzanie ng-repeat, być może możesz po prostu napisać własną dyrektywę, która specjalnie obsługuje tę sprawę dla ciebie. Dobre pytanie. – shaunhusain
'$ parent. $ Index' lub może' $ parent(). $ Index' - Jedna z tych dwóch powinna działać. – rGil
'$ rodzic. $ Indeks' działa. Dzięki! – user2494584