2015-08-12 4 views
0

Мое приложение отлично работает с ngRoute, но когда я пытаюсь получить доступ к своим частям напрямую (из адресной строки), он возвращает только часть (без главной страницы). Как скрыть эти части от прямого доступа?AngularJS ngRoute direct part access

Объяснение: У меня есть сайт с 2-мя блоками. Сначала меню, а второе - это контент (один из моих маршрутов). Меню содержит ссылки: «#/main» и «#/account». Когда я нажимаю кнопки, он отлично работает (левое меню и содержимое). Но если я изменю URL-адрес с localhost: 8080/#/account на localhost: 8080/account, он отображает ТОЛЬКО содержимое без меню. Я хочу скрыть доступ к localhost: 8080/account или сделать его для отображения содержимого с помощью меню.

+0

Попробуйте перефразировать, не очень понятно, что вы имеете в виду вообще. – dfsq

+0

Я отредактировал ответ. – Feeco

ответ

1

Ваша проблема, скорее всего, не с вашей маршрутизацией AngularJS, а с маршрутизацией с сервера. Когда вы запрашиваете такую ​​страницу, как localhost:8080/account, ваш сервер говорит «ОК, давайте просто доставить файл /account». Но это не совсем правильно, потому что вы действительно хотите загрузить все приложение. Это обычная проблема, и не так уж плохо, чтобы ее решить.

Я не знаю, что ваш бэкенд выглядит, но вот общий пример экспресс/узел:

var express = require('express'), 
    routes = require('./routes'); 

app.get('/', routes.index); 
app.get('*', routes.index); 

«Каждый запрос к серверной должен сначала оказать полную раскладку, чтобы загрузить наш Угловое приложение. Только тогда рендеринг на стороне клиента ».

ЦСИ: http://fdietz.github.io/recipes-with-angular-js/backend-integration-with-node-express/implementing-client-side-routing.html

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