Quando si inserisce un elemento in un array, la vista non aggiornerà l'elenco.Angolare: spingere la voce nell'elenco non aggiorna la vista
tavolo:
<tbody id="productRows">
<tr data-ng-repeat="product in products | filter: search">
<td>{{ product.Code}}</td>
<td colspan="8">{{ product.Name}}</td>
</tr>
</tbody>
forma:
<form data-ng-submit="submitProduct()">
Code:
<br />
<input type="text" required data-ng-model="product.Code"/>
<br />
<br />
Naam:
<br />
<input type="text" required data-ng-model="product.Name"/>
<br />
<input type="submit" value="Opslaan" />
</form>
submitProduct controller:
$scope.submitProduct = function() {
console.log('before: ' + $scope.products.length);
$scope.products.push({Code: $scope.product.Code, Name: $scope.product.Name});
console.log('after:' + $scope.products.length);
console.log($scope.products);
$scope.showOverlay = false;
};
Come potete vedere, annoto le voci totali nella matrice e si comporta come Mi aspetterei. L'unica cosa che non fa quello che mi aspetto è il contenuto della mia tabella, che non mostra il nuovo valore.
Cosa devo fare, quindi la nuova riga viene visualizzata nella tabella?
Sembra che dovrebbe funzionare. Aggiungi un jsfiddle o plnkr per favore. –
Questo [plnkr] (http://plnkr.co/edit/UXvtEhNbiilRn6DjX93P?p=preview) con il tuo codice funziona correttamente? Stai definendo $ scope.products correttamente? –
Che codice sta chiamando 'submitProduct()'? Se questo codice è in esecuzione "fuori" Angular, dovrai chiamare '$ scope. $ Apply()' alla fine del tuo metodo 'submitProduct()' per far sì che Angular esegua un ciclo di digest, che causerà la tua visualizzazione aggiornare. –