AngularJS: Résoudre dans RouteProvider de détection de Réussite ou d'Échec?
J'ai eu à résoudre mon travail sur mon routeprovider mais je viens de revenir de la promesse, donc je ne sais pas si sa réussite ou son échec. C'est ce que j'ai
.when('/items', {
templateUrl: 'views/items.html',
controller: 'ItemsCtrl',
resolve: {
resolvedData: function(Restangular) {
return Restangular.one('Items').get();
}
}
})
Maintenant, cela ne fonctionne pas mais comment puis-je détecter la réussite ou de l'échec... j'ai pu l'indiquer dans la détermination de la méthode, mais que ferais-je de retour dans la réussite et de l'échec... Souvenant j'ai besoin d'avoir l'élément injecté dans mon contrôleur.
.when('/items', {
templateUrl: 'views/items.html',
controller: 'ItemsCtrl',
resolve: {
resolvedData: function(Restangular) {
Restangular.one('Items').get().then(function(data) {
//success
}, function() {
//failure
});
}
}
})
Je l'ai fait voir un exemple ici, mais je ne sais pas si c'est ce dont j'ai besoin et comment l'utiliser?
AngularJS - rejet $http promesse $routeProvider:résoudre
Il semble être de retour d'un manuel de promesse.
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;
}
]
}
Je voudrais vraiment apprécier l'aide de quiconque.
Ce que je veux vraiment faire est dans mon contrôleur ont l'résolu variable injecté dans le contrôleur, s'il échoue, alors je voudrais également avoir accès à la défaillance du contrôleur afin que je puisse afficher à l'utilisateur qu'il n'était pas possible de rendre en raison d'un problème.
OriginalL'auteur Martin | 2013-07-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement retourner la valeur de retour de la
then
méthode:La
then
méthode doc:De retour d'un objet tel que {success: true, les données: ...}
OriginalL'auteur
Si la détermination de la fonction échoue, vous aurez probablement envie d'afficher à l'utilisateur quelque chose en conséquence (comme un message d'erreur).
Il serait préférable de laisser votre résolution de retour de la fonction, une promesse (sans
then
) et l'utilisation de l'événement interne$routeChangeError
.])
Il sera également plus facile de traiter avec d'erreur générique (comme d'erreur de réseau /serveur vers le bas, etc).
OriginalL'auteur