0
我在点击浏览器返回按钮后尝试返回“旧”内容时遇到了麻烦。在浏览器上返回以前的内容“返回”按钮点击
目前我正在试图与AngularJs
和Symfony2
分页:
app.js
var fcrApp = angular.module('fcrApp', ['ngRoute', 'fcrController']);
fcrApp.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
}]);
controller.js
var fcrController = angular.module('fcrController', []);
fcrController.controller('MainController', function ($scope, $compile, $http, $location) {
$scope.goToPage = function (host, path) {
var ajaxUrl = changeUrl(host, path);
getContent(ajaxUrl, path);
changeBrowserUrl(path);
}
function changeBrowserUrl(path) {
$location.path(path);
}
function changeUrl(host, path) {
var newString = host.replace("www.", "");
var newHost = newString.replace("http://", "http://ajax.");
return newHost + path;
}
function getContent(link, path) {
$http.get(link, { cache: true}).success(function (data) {
angular.forEach(data.divs, function (value, key) {
var compiledElement = $compile(value)($scope);
$('#' + key).html(compiledElement);
});
$scope.title = data.title;
if (data.robots) {
$('meta[name=robots]').attr('content', data.robots);
}
$('html, body').animate({
scrollTop: $("#" + data.scrollTo).offset().top
}, 500);
}).error(function() {
location.assign(linkOld);
});
}
});
HTML:
<a ng-click="goToPage(host, url)">page</a>
当用户点击的页面链接,新的HTML内容被接收超过$http.get()
与旧的替换。问题是,如果我想用返回按钮返回,则URL也会更改为旧的,但当前的内容不会。有没有解决方案来实现这一目标?
谢谢。
我刚刚遇到同样的问题。有趣的是,在我的情况下,这仅仅适用于不使用任何路由''ngRoute'' /''ui.router''的应用程序。你有解决这个问题的好运吗? – iiminov 2016-03-10 15:35:47