2015-05-24 3 views
0

Я пытаюсь настроить маршрут на стороне клиента с помощью Angular и Express 4. Я работал с гидом ngView и без Express, это хорошо, но когда Express Routing позволяет ngRoute не работать. Как я могу настроить Express, чтобы он работал с ngRoute?Угловой ngRoute не работает с Express 4

Немного кода:

var app = angular.module('app', ['ngRoute']); 
 

 
app.config(['$routeProvider', '$locationProvider', 
 
    function($routeProvider, $locationProvider) { 
 
    $routeProvider 
 
     .when('/category/:catgegoryName', { 
 
     templateUrl: 'category', 
 
     controller: 'categoryController', 
 
     controllerAs: 'category' 
 
     }) 
 
     .when('/category/:catgegoryName/device/:deviceName', { 
 
     templateUrl: 'device', 
 
     controller: 'deviceController', 
 
     controllerAs: 'device' 
 
     }) 
 
     .otherwise({ 
 
     redirectTo: '/' 
 
     }); 
 
    $locationProvider.html5Mode(true); 
 
    } 
 
]);

+1

Как вы настроили маршрутизацию на стороне сервера? – dfsq

+0

@dfsq что-то вроде этого: router.get ('/ category /: catgegoryName', function (req, res, next) { res.render ('category'); }); –

+0

Хорошо, убедитесь, что сервер отвечает «index.html» на все запросы (кроме статических активов). – dfsq

ответ

1

Поскольку вы настроили режим HTML5 не нужно реплицировать ту же самую структуру маршрутов на стороне Express. Вместо этого вам нужно убедиться, что сервер всегда отвечает целевой страницей (обычно index.html), где настроено и загружено Угловое приложение.

Так будет, что, скажем, маршрут /category/something сервер по-прежнему отвечает index.html. Затем Angular проанализирует URL-адрес и поймет, что ему нужно ввести шаблон и контроллер, соответствующий маршруту .when('/category/:catgegoryName', {...}).

+0

Да, это хорошо, но когда я нажимаю на ссылку, моя страница зависает. –

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