如何处理带有模板的页面上的后退按钮?

时间:2014-06-04 01:37:19

标签: javascript html angularjs

我正在使用angularjs在网站上工作。我将页面分为两部分:菜单和内容。

例如

这是一个页面:/ mainpage

<div>
  <div id="menu">
     <div ng-click="setTemplate('firstPage.html')">Page 1</div>
     <div ng-click="setTemplate('secondPage.html')">Page 2</div>
     <div ng-click="setTemplate('thirdPage.html')">Page 3</div>
  </div>
  <div id="content" ng-template="template">
  </div>
</div>

控制器:

$scope.template = 'firstPage.html'; 
$scope.setTemplate = function(value){
   $scope.template = value; 
}

所以点击Page 1然后Page 2然后页面3.所以当我点击后退按钮时,它会加载最后一页/但不是/ mainpage和正确的模板。如果有模板更改,我如何处理后退按钮不返回上一页并转到上一个模板?

感谢。

2 个答案:

答案 0 :(得分:1)

你应该看看https://github.com/angular-ui/ui-router。您可以自己构建功能,但ui-router几乎就是您最终的目的。

答案 1 :(得分:0)

问题是你没有什么可以默认的。当您单击后退时,它只是加载/主页,但它没有要加载的模板。通常您使用$ routeprovider:

$routeProvider
.when('/',
{
    controller: 'yourControllerName.js',
    templateUrl:'mainpage.html'
})
.otherwise(
{
    redirectTo : '/'
});