2016-08-15 5 views
0

Я хочу просить вас о помощи в этом коде.AngularJS в противном случае не работает

app.config(function ($locationProvider, $routeProvider) { 

    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 
    $routeProvider 
     .when("/", { 
     templateUrl: "views/home.html", 
     controller: "HomeController" 
    }).when("/login", { 
     templateUrl: "/views/login.html", 
     controller: "LoginController" 
    }).when("/register", { 
     templateUrl: "/views/register.html", 
     controller: "RegisterController" 
    }).when("/users", { 
     templateUrl: "/views/admin/users.html", 
     controller: "UserController", 
     requiresAuth : true 
    }).otherwise({ 
     redirectTo: "/" 
    }); 
}).run(function($rootScope, Session) { 
    $rootScope.$on("$routeChangeStart", function(event, next, current) { 
    if (next.requiresAuth && !Session.getIsAdmin()) { 
     alert("You are not authorized"); 

     event.preventDefault(); 
    } 
    }); 
}); 

, когда я иду на несуществующий адрес он показывает ERR:

Error: No default engine was specified and no extension was provided. 

, так что в противном случае пары Безразлично `работа, то почему нет?

ответ

2

Эта ошибка исходит от сервера, а не от углового. Вам необходимо настроить сервер для обслуживания страницы index.html для этого «несуществующего» адреса (и для всех существующих, BTW). Прочитайте Understanding what it takes to remove the hash # from angular routes).

Угловой ничего не может сделать, если нет HTML-страницы и никакого приложения вообще. Как только index.html будет загружен с сервера, начнется угловое приложение, проверит, что такое URL, будет обнаруживать, что он не соответствует ни одному маршруту, и затем перенаправляется на главную страницу.

+0

Да, конечно. Глупая ошибка. Все в порядке. спасибо – Kuba

Смежные вопросы