i have got resolve working on routeprovider return promise don't know if success or failure. have
.when('/items', { templateurl: 'views/items.html', controller: 'itemsctrl', resolve: { resolveddata: function(restangular){ return restangular.one('items').get(); } } }) now work how detect success or failure... enter in resolve method, return in success , failure... remembering need have item injected in controller.
.when('/items', { templateurl: 'views/items.html', controller: 'itemsctrl', resolve: { resolveddata: function(restangular){ restangular.one('items').get().then(function (data) { // success }, function () { // failure }); } } }) i did see example here confused if need , how use it?
angularjs - rejected $http promise $routeprovider:resolve
it seems returning manual promise.
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; } ] } i appreciate has.
what want in controller have resolved variable injected controller, if fails have access failure in controller can display user wasn't possible render due issue.
you can return return value of then method:
resolve: { resolveddata: function(restangular){ return restangular.one('items').get().then(function (data) { ... return successdata; // resolveddata resolved successdata }, function () { ... return failuredata; // resolveddata resolved failuredata }); } } the then method doc:
this method returns new promise resolved or rejected via return value of successcallback or errorcallback.
Comments
Post a Comment