Rilegatura nella vista o nel controller?

2

Ho visto 2 diversi approcci con MVC sul Web.

Uno, come in ExtJS, è quello di associare i callback alla vista tramite il controller. Individuazione di ogni elemento nella vista e aggiunta della funzionalità.

L'altro, come in angular.js e nel framework di sollevamento, è quello di legare le viste e solo scrivere la funzionalità nel controller.

Quale è meglio e più pulito?

L'approccio di ExtJS ha visioni stupide e tutta la logica del controller che mi sembra pulita. Ho avuto problemi con gli ID globali per gli elementi della GUI o la navigazione relativa agli elementi della GUI in questo approccio. Quando ho cambiato la vista, il controller non ha trovato più i pulsanti o ho avuto più istanze di un pulsante con lo stesso ID su una singola applicazione, a causa dell'ID globale.

Ma ho risolto questo problema con ID che sono solo globali in una vista e possono essere presenti più volte nell'applicazione. Quindi potrei fare confusione con il layout e il design delle viste (stupide) e la funzionalità non si romperebbe.

L'approccio angular.js con i collegamenti nella vista non ha il problema con gli ID globali. Inoltre, la persona che cambia qualcosa nel layout della vista deve comunque conoscere gli ID, in modo che il controller possa inserire i dati nel punto giusto.

Quindi se scrivo

<a ng-click="doThis()" />

per angular.js e implementa doThis()

o

<a lid="buttonwhichdoesthis" />

per extjs e trova l'elemento con l'id locale e aggiungi doThis() come gestore sul lato controller, sembra non essere così diverso.

L'unica cosa è che il secondo ha un altro strato di riferimento indiretto, che sembra più pulito.

Il primo sembra meno sforzo.

    
posta K.. 03.09.2012 - 11:01
fonte

1 risposta

2

Dal mio punto di vista: nessuno dei due è migliore dell'altro. Sono solo due modi diversi per raggiungere lo stesso scopo.

Sono molto utile per lavorare con diversi framework MVC basati su Java come Spring MVC, JSF e GWT. I due precedenti sono come angular.js che hai menzionato, legano le operazioni con le viste e tutto viene eseguito sul lato server (anche il rendering dell'interfaccia utente) mentre il secondo, GWT, è basato su JavaScript e tutto il lavoro dell'interfaccia utente viene eseguito sul lato client, quindi rilegato tramite richiami alle chiamate lato server per eseguire quelle altre attività lato server come elaborazione dati e così via.

Preferisco lavorare con framework lato server ed eseguire piccole chiamate AJAX dall'interfaccia utente per aggiornare parti specifiche della vista dell'applicazione. Ma io quella cosa è una preferenza personale.

    
risposta data 03.09.2012 - 11:11
fonte

Leggi altre domande sui tag