Angular - 无法响应路线

时间:2014-01-12 07:28:54

标签: angularjs laravel-4

当我点击网址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">

1 个答案:

答案 0 :(得分:1)

Angular使用哈希路由来区分客户端路由和服务器端路由。正如allenhwkim在上面的评论中所说,$locationProvider.html5Mode(true)将允许您使用Angular进行路由而不使用哈希路由,但这只适用于现代浏览器。您的应用程序不会在旧浏览器上中断;他们只会回到哈希路线。

例如,在html5Mode开启的情况下,您应该能够路由到localhost:8000/something并查看预期的Angular视图。但是,在较旧的浏览器上,您必须导航到localhost:8000/#/something

请参阅官方开发人员指南中的Hashbang and HTML5 Mode部分。