我正在处理我的角度应用程序并设置了这样的路线
angular.module('app', ['ngRoute']) .config(function ($routeProvider, $locationProvider) { $routeProvider.when('/', { template : "", controller : function($window) { $window.location.href = '/'; } }).when('/test', { redirectTo : '/test/dashboard' }).when('/test/dashboard', { templateUrl : '../partials/dashboard.html', controller : 'DashboardController' }).when('/test/unit', { templateUrl : '../partials/unit.html', controller : 'unitController' }); $locationProvider.html5Mode(true); });
HTML
<body ng-app="app">
...
<div id="sidebar-wrapper" class="fill-height sidebar-nav">
<ul class="tabRow nav nav-stacked">
<li ng-class="{active: isActive('dashboard') }"><a id="dashboardLink" ng-href="#test/dashboard">Dashboard</a>
</li>
<li ng-class="{active: isActive('unit') }"><a id="unitLink" ng-href="#test/unit">Unit</a>
</li>
</ul>
</div>
...
</body>
问题:
当我输入“/ test”时,此代码会将URL重定向到“/ test / dashboard”,但该页面的html没有显示。但是,当我使用该路由刷新页面时,它会在页面的内容区域中显示html。
当我在链接之间切换时,仪表板会显示,只是在第一次导航时不会加载。
此外,当我将重定向更改为/ test / unit时,它会重定向并显示unit.html。
不确定导致此行为的原因。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我认为您需要在为requireBase: false
配置html5Mode时指定$locationProvider
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
这是一个有效的plnkr demo
有关部署的更多上下文,您应该了解this表单angular docs
答案 1 :(得分:0)
如果删除 -
,则有效$locationProvider.html5Mode(true);
或者,您可以添加一个类似的question's答案 -
<base href="/" />
到
<head />
。