2014-01-12 3 views
0

Когда я набрал адрес http://localhost:8000/something, он перенаправляет меня на login, почему?Угловой - Не удается ответить на маршрут

Мастер шаблона:

<!DOCTYPE html> 
<html lang="en" ng-app="app"> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="csrf_token" ng-init="csrf_token='<?php echo csrf_token(); ?>'"> 


</head> 
<body> 

    <div ng-view></div> 

    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.js"></script> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js"></script> 
    {{ HTML::script("js/ang/main.js") }} 


</body> 
</html> 

JS:

var app = angular.module('app', ['ngRoute'], function($interpolateProvider) { 
    $interpolateProvider.startSymbol('<%'); 
    $interpolateProvider.endSymbol('%>'); 
}); 


app.config(function($routeProvider) { 
    $routeProvider 
     .when('/something', { 
      templateUrl: 'angular_templates/all-timelines.html', 
      controller: 'timelinesCtrl' 
     }) 
     .otherwise({ 
      redirectTo: '/login' 
     }); 

}); 


app.controller('timelinesCtrl', function($scope, $http) { 

}); 

все timelines.html

<input type="text"> 
+0

Есть ли у вас http: // localhost: 8000/# что-то? – allenhwkim

+0

@allenhwkim Нет 'localhost: 8000/something' .. Я просто попробовал localhost: 8000/# что-то, и это сработало. Спасибо. Означает ли это, что угловые будут реагировать только на URL-адреса после хэштага? –

+0

На самом деле это не сработало .. Используя localhost: 8000/# что-то просто показывает мою домашнюю страницу .. –

ответ

1

Угловая использует хэш маршрутов различать на стороне клиента и маршрутизации на стороне сервера маршрутизации. Как сказал allenhwkim в комментариях выше, $locationProvider.html5Mode(true) позволит вам маршрутизировать с помощью Angular без использования хэш-маршрутов, но это будет работать только в современных браузерах. Однако ваше приложение не будет разбиваться на старые браузеры; они просто вернутся к хэш-маршрутам.

Например, с помощью html5Mode вы можете проехать до localhost:8000/something и увидеть ожидаемый вид с угловой стороны. Однако в более старом браузере вам необходимо перейти на localhost:8000/#/something.

См. Раздел о Hashbang and HTML5 Mode в официальном руководстве разработчика.

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