当我点击网址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 :(得分:1)
Angular使用哈希路由来区分客户端路由和服务器端路由。正如allenhwkim在上面的评论中所说,$locationProvider.html5Mode(true)
将允许您使用Angular进行路由而不使用哈希路由,但这只适用于现代浏览器。您的应用程序不会在旧浏览器上中断;他们只会回到哈希路线。
例如,在html5Mode
开启的情况下,您应该能够路由到localhost:8000/something
并查看预期的Angular视图。但是,在较旧的浏览器上,您必须导航到localhost:8000/#/something
。
请参阅官方开发人员指南中的Hashbang and HTML5 Mode部分。