Ho risolto il problema lavorando al mio routeprovider ma ho appena restituito la promessa quindi non so se il suo successo o fallimento. Questo è quello che hoAngularJS: Risolve in RouteProvider - rilevamento del successo/fallimento?
.when('/items', {
templateUrl: 'views/items.html',
controller: 'ItemsCtrl',
resolve: {
resolvedData: function(Restangular) {
return Restangular.one('Items').get();
}
}
})
Ora questo funziona, ma come faccio a rilevare il successo o il fallimento ... potrei entrare in questo determinazione nel metodo, ma quello che ci tornerei per il successo e il fallimento ... Ricordando Ho bisogno di avere l'oggetto iniettato nel mio controller.
.when('/items', {
templateUrl: 'views/items.html',
controller: 'ItemsCtrl',
resolve: {
resolvedData: function(Restangular) {
Restangular.one('Items').get().then(function(data) {
// success
}, function() {
// failure
});
}
}
})
ho fatto vedere un esempio qui, ma sono confuso se questo è quello che mi serve e come si usa?
AngularJS - rejected $http promise with $routeProvider:resolve
Sembra di tornare una promessa manuale.
resolve: {
response: ['Warranty'
'$q',
function(Warranty, $q) {
var dfd = $q.defer();
Warranty.sendRequest().then(function(result) {
dfd.resolve({
success: true,
result: result
});
}, function(error) {
dfd.resolve({
success: false,
reason: error
});
});
return dfd.promise;
}
]
}
Apprezzerei molto qualsiasi aiuto che qualcuno ha.
Quello che voglio veramente fare è che nel mio controller abbia la variabile risolta iniettata nel controller, se fallisce allora vorrei anche avere accesso al guasto nel controller in modo da poter mostrare all'utente che non era 'possibile eseguire il rendering a causa di un problema.
Ah, va bene, e nel mio controller come potrei identificare se il valore che sto iniettando è il successo o il fallimento ?? – Martin
Restituisce un oggetto come {success: true, data: ...} –