Sto lavorando a un'app AngularJS che crea un foglio di calcolo da un array 2D creato dalla funzione ng-repeat
. Sto attualmente scrivendo una funzione che cambierà i valori iniziali dell'array quando l'utente immetterà nuovi valori nel foglio di calcolo. Ciò mi richiede di accedere al punto nell'array iniziale in base all'indice di riga e all'indice della colonna, così posso cambiarlo con il nuovo valore.
Ho esaminato lo ng-repeat API e ho scoperto che ha una proprietà $index
che mi consente di controllare l'indice del valore ripetuto corrente. Tuttavia, mi sto trovando che sarà solo fammi controllare l'indice del valore di qualsiasi ciclo di ripetizione si è dentro -. Nessun altro loop esterne che si può anche essere in
<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>
voglio accedere al $index
di outer
mentre si è all'interno del ciclo inner
e si può anche accedere allo $index
dello inner
. C'è un modo per farlo? Ho intenzione di passare questi valori come parametri alla funzione che sto scrivendo.
Forse c'è una risposta più diretta, ma vorrei pro solo s verificando ng-repeat, forse puoi semplicemente scrivere la tua direttiva che gestisce specificamente questo caso per te. Una buona domanda però. – shaunhusain
'$ parent. $ Index' o forse' $ parent(). $ Index' - Uno di questi due dovrebbe funzionare. – rGil
'$ parent. $ Index' funziona. Grazie! – user2494584