Esce fuori che non posso fare a meno di with usando strict mode, mi sono chiesto come faccio a non avere effetti collatorali per via della closure, la soluzione che ho trovato è stata:
for(esaid in myarr) {
var getter = function () {
console.log('this is THIIIS',this);
return function(success) {
if(success.error) {
$scope.errorMessage = success.error;
} else {
$scope.notificationPreferences[esaeid] = success;
}
};
}.call({esaid:esaeid});
EApicall.save(notpreferences,getter);
}
Così pare funzioni, deve essere un pattern conosciuto comunque.
Questo all’interno di un ciclo for, non importa, perché getter ha scope locale e non è influenzato dalla closure