2014-09-01 4 views
1

Я использую угловые js для проекта, у меня есть страница входа в систему, откуда после успешного входа пользователь перенаправляется на главную страницу. В настоящее время я использую этот код для перенаправленияПеренаправление в angularjs

request.success(function(data){ 
       $scope.response=data; 
       NProgress.done(); 
       window.location.href = "/app/home.html"; 
      //$location.path('/homepage').replace(); 
     }); 

Но проблема этого метода состоит в том, что адрес в браузере показывает /app/home.html#/feed который не выглядит хорошо. Я хочу, чтобы это достигалось через руттер-пауза в угловом, но оно не работает. Мой текущий файл app.js выглядит следующим образом

config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { 
$routeProvider.when('/feed', {templateUrl: 'partials/home/feed.html'}); 
$routeProvider.when('/profile', {templateUrl: 'partials/home/profile2.html'}); 
// $routeProvider.when('/homepage', {templateUrl: '#/home.html'}); 
$routeProvider.otherwise({redirectTo: '/feed'}); 

Я хочу URL-адрес в Broswer выглядеть приложение/Главная/корма используя $ место, как я попробовал в комментариях. Любая идея, как я могу это сделать?

ответ

0

Функция $locationProvider.html5Mode(boolean) - это то, что вам нужно.
Just do $locationProvider.html5Mode(true) и больше не нужно было #.

Это на this page документации

+0

Моя проблема не ** # ** Я не хочу, чтобы расширение файла .html было видимым в браузере, в настоящее время я использую $ locationProvider.html5Mode (boolean), но сохранил его как false, поскольку сначала хочу удалить .html с URL-адреса. – Gaurav

+0

Что делает расширение файла связано с маршрутизацией? Что произойдет, если вы попробуете то, что я предложил? @Gaurav – 11684

0

, если вы не используете стороне сервера Language/маршрутизации, только вы используете angularJs. то просто добавьте это, чтобы полностью удалить # tag из углового.

angular.module('myApp', ['ngRoute']) 
    .config(['$locationProvider', function($locationProvider) { 
    $locationProvider.html5Mode(true); 
}]); 

Но если вы используете на стороне сервера язык, то вам придется создать кетчуп все маршрут таким образом, чтобы любые маршруты, которые не специально проложенные на стороне сервера будут переданы в угловых routes.i я использую здесь экспресс-сервер в качестве бэкэнд, чтобы поймать маршрут, который не упоминается в бэкэнд. Я предполагаю, что вы используете express.js:

app.get('*', function(req, res) { 
res.render('index'); 
}); 

общий код сервера будет выглядеть следующим образом:

var express = require('express'), 
app = module.exports = express(); 
app.engine('.html', require('ejs').__express); 
app.set('views', __dirname + "/views"); 
app.set('view engine', 'html'); 
app.use(express.static(__dirname + "/public")); 
app.get('*', function(req, res) { 
res.render('index'); 
}); 

для деталей использовать this ссылку

+0

Мы используем sails.js для бэкэнд, но у меня есть идея в любом случае – Gaurav

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