questa è una domanda fondamentale su MVC (in particolare con AngularJS) e ho trovato domande simili qui, ma non lo stesso problema:
La vista può chiamare una funzione del modello o deve solo chiamare le funzioni del controller?
Ecco l'esempio:
Nel mio modello c'è una funzione per eliminare elementi di una raccolta, come questa:
function deleteItems(searchExpression) { ... }
Ora il mio controller ha un'istanza del mio modello che include quella funzione, come questa:
$scope.data = queryModelFactory.getModel();
Ora desidero chiamare tale funzione quando l'utente fa clic su un determinato elemento nella pagina HTML:
<div ng-click="data.deleteItems('blabla')">Remove Items</div>
È legittimo? O sarebbe meglio implementare una funzione nel controller che sta passando attraverso la richiesta di cancellazione al mio modello come farei in un'architettura a livelli classici? In questo modo:
function deleteItems(searchExpression) {
$scope.data.deleteItems(searchExpression);
}