Sto iniziando ad usare il framework AngularJS (v1), e dopo aver consultato le buone pratiche ho trovato quegli esempi (da questa pagina link ), come:
/* recommended */
function SessionsController() {
var vm = this;
vm.gotoSession = gotoSession;
vm.refresh = refresh;
vm.search = search;
vm.sessions = [];
vm.title = 'Sessions';
////////////
function gotoSession() {
/* */
}
function refresh() {
/* */
}
function search() {
/* */
}
}
Sono l'unico a trovarlo strano? Sembra una cattiva pratica in JavaScript.
-
Ogni volta che crei un controller, dovrai scrivere funzioni e anche scrivere tutti gli accessor su tutte loro. Sembra inutile e anche meno leggibile poiché mescola l'attribuzione e gli attributi dei metodi.
-
Ogni volta che questo controller viene istanziato, tutti i metodi verranno riscritti. Non dovremmo usare un prototipo per condividere metodi tra tutte le istanze?
function SessionsController() {
this.sessions = [] ;
this.title = 'Sessions' ;
}
SessionsController.prototype = {
gotoSession : function() {
/* */
},
refresh : function() {
/* */
},
search : function() {
/* */
}
} ;
Non è più semplice, più leggibile e più efficiente?
Forse mi sono perso qualcosa. Cosa ne pensi?