Если я использую режим hashbang, проблем не будет, и переход между маршрутами будет плавным, однако, если я изменю режим маршрутизации на режим Html5, переход между маршрутами будет не таким плавным, как в режиме hashbang, и мы увидим какое-то мерцание в других частях страница, такая как заголовок, панели, нижний колонтитул, из-за перезагрузки всей страницы.
В режиме html5 после изменения URL-адреса вся страница будет перезагружена, даже верхний и нижний колонтитулы, как я могу заменить только содержимое и сохранить другие части страницы нетронутыми?
angular.module("theApp", ["ngRoute"]);
angular.module("theApp").controller("MainController", [MainController]);
function MainController() {
var vm = this;
vm.headerContent = "Header Section";
}
angular.module("theApp").controller("FirstController", [FirstController]);
function FirstController() {
var vm = this;
vm.testField = "this is first controller";
}
angular.module("theApp").controller("SecondController", [SecondController]);
function SecondController() {
var vm = this;
vm.testField = "this is second controller";
}
angular.module("theApp").config(["$routeProvider", "$locationProvider", function ($routeProvider, $locationProvider) {
$routeProvider.when("/first", {
templateUrl: "../../static/web/first.html",
controller: "FirstController"
}).when("/second", {
templateUrl: "../../static/web/second.html",
controller: "SecondController"
});
$locationProvider.html5Mode(true);
}]);
<html lang="en" ng-app="theApp">
<head>
<meta charset="UTF-8">
<title>Django 103</title>
<base href="/user/">
</head>
<body ng-controller="MainController as MyMainCtrl">
<div class="header">
<h2 ng-bind="MyMainCtrl.headerContent"></h2>
</div>
<div ng-view></div>
</body>
</html>