Я использую 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, и по этой причине он запускает тот же код в бесконечном цикле, в последнем браузере висит.
Цените свою помощь, спасибо.
