Sto usando angularjs nella mia applicazione, tutto funziona bene ma prima di caricare il modello voglio solo verificare che esista effettivamente sul suo percorso specificato.percorsi angularjs, come verificare se il file modello esiste
Ecco il mio codice:
.when("/:page", angularAMD.route({
templateUrl: function (rp) {
return 'public/templates/' + rp.page.replace('.html', '') + '.php'; },
resolve: {
load: ['$q', '$rootScope', '$location',
function ($q, $rootScope, $location) {
var path = $location.path();
//console.log(path);
var parsePath = path.split("/");
var controllerName = parsePath[1];
controllerName = controllerName.replace('.html', '').replace('_', '');
var loadController = "public/js/controllers/" +
controllerName + "Controller.js";
var deferred = $q.defer();
require([loadController], function() {
$rootScope.$apply(function() {
deferred.resolve();
});
});
return deferred.promise;
}]
}
}))
voglio che prima di fare questo return 'public/templates/' + rp.page.replace('.html', '') + '.php'; }
si deve verificare se il file esiste, altrimenti voglio reindirizzare a pagina 404.
quello che succede ora, quando visito un link non valido, non ottengo lo stato 404, invece carica il file index.html principale, e per questo motivo, avvia lo stesso codice in un ciclo infinito, finalmente il browser si blocca.
Apprezzo il tuo aiuto, grazie.
Allora perché non si usa $ routeChangeError o NOTFOUND (qualcosa) evento per una migliore attuazione di quello che si pensava di reindirizzare utente a altra pagina? – micronyks
puoi per favore fornirmi qualche esempio, come usare $ routeChangeError? –
http://stackoverflow.com/questions/20894568/display-specific-template-on-routechangeerror checkout this. – micronyks