Nella mia app angolare ho un controller come segue:
function TemplateListControl($scope, TemplateService){
$scope.templates = TemplateService.get(); // Get objects from resource
// Delete Method
$scope.deleteTemplate = function(id){
$scope.templates.$delete({id: id});
}
}
All'interno della vista Ho una tabella questo è legato al templates
modello. come segue:
<table ng-model="templates">
<thead>
<tr>
<th style="width:40%">Title</th>
<th style="width:40%">controls</th>
</tr>
<thead>
<tbody>
<tr ng-repeat="template in templates">
<td>
<!-- Link to template details page -->
<a href="#/template/[[template.id]]">
[[template.title]]
</a>
</td>
<td>
<!-- Link to template details page -->
<a class="btn btn-primary btn-small"
href="#/template/[[template.id]]">Edit
</a>
<!-- Link to delete this template -->
<a class="btn btn-primary btn-small"
ng-click="deleteTemplate(template.id)">Delete
</a>
</td>
</tr>
</tbody>
</table>
Ora, quando clicco sul link di eliminazione nel modello di cui sopra, si chiama il metodo deleteTemplate
ed un successo DELETE
chiamata viene effettuata per l'API REST. Ma la vista non viene aggiornata fino a quando non viene aggiornata e $scope.templates = TemplateService.get();
viene avviato nuovamente. Che cosa sto facendo di sbagliato?
e come facciamo a sapere se la chiamata asincrona all'API REST è riuscita? Sono tranquillo che la risorsa angular dovrebbe aggiornare la vista di conseguenza da sola. Se dobbiamo aggiornare manualmente i dati sul lato client, dovremo anche gestire manualmente gli errori, che a mio parere sembrano andare nella direzione opposta. – Amyth
Puoi condividere fiddle per favore –