【发布时间】:2017-06-03 16:52:31
【问题描述】:
最新版本的 angular/angular-route 1.6.1 是否默认使用 hashbang?以这段代码为例,我必须使用#!链接到部分时,因为 #/ 或 #/partial2 不起作用。我认为您必须设置一个哈希前缀,但看起来它默认为该行为:
<!DOCTYPE html>
<html ng-app='myApp'>
<head>
<title></title>
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-route/angular-route.js"</script>
<script>
var myApp = angular.module('myApp', ['ngRoute']);
myApp.config(function ($routeProvider) {
$routeProvider
.when('/',{
templateUrl: 'partials/view1.html',
})
.when('/partial2',{
templateUrl: 'partials/view2.html'
})
.otherwise({
redirectTo: '/'
});
});
myApp.controller('view1Controller', function ($scope) {
$scope.sports = ['golf', 'basketball', 'hockey', 'tennis', 'football'];
});
myApp.controller('view2Controller', function ($scope) {
$scope.message = 'We are using another controller';
});
</script>
</head>
<body>
<div ng-app='myApp'>
<a href="#!/">Partial 1</a> | <a href="#!/partial2">Partial 2</a>
<div ng-view="">
</div>
</div>
</body>
</html>
【问题讨论】:
-
你可以使用 $locationProvider.html5Mode(true);在配置中处理禁用和启用 hashbang 为 true/false
-
@VinodLouis 是对的。 html5Mode 会处理 hashBang
-
@VinodLouis 谢谢,我知道这是真的。但我记得 hashbang 必须通过 html5Mode(true) 启用,但实际上,没有 html5Mode(true),它已经启用。只是想知道它何时成为默认设置。
标签: javascript angularjs routing angular-routing hashbang