Я использую angularjs в своем приложении, все работает хорошо, но перед загрузкой шаблона я просто хочу проверить, что он действительно существует по его заданному пути.
Вот мой код:
.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;
}]
}
}))
Я хочу, чтобы до этого return 'public/templates/' + rp.page.replace('.html', '') + '.php'; }
он должен проверить, существует ли этот файл, в противном случае я хочу перенаправить на страницу 404.
что происходит, когда я посещу какую-то недействительную ссылку, я не получаю статус 404, вместо этого он загружает основной файл index.html, и по этой причине он запускает тот же код в бесконечном цикле, в последнем браузере висит.
Цените свою помощь, спасибо.