【发布时间】:2015-10-09 17:31:17
【问题描述】:
我是 Angular.js 的新手,所以我确信有一个非常简单的解决方案,我很惊讶没有一堆教程涵盖这个问题。
(有很多内容涵盖一长串结果的分页 - 但我的问题似乎完全不同。)
我已经成功地为我的“单页应用程序”/网站中的多个页面实现了路由。这些页面有一个自然的顺序,所以我试图在标题中实现上一个和下一个按钮(或链接),以便下一个按钮循环通过主页 > 第 1 页 > 第 2 页 > 第 3 页 > 主页,上一个按钮转到从主页 > 第 3 页 > 第 2 页 > 第 1 页 > 主页向后。
阅读了一些相关的文章、教程、示例和 StackOverflow 问答后,我尝试了一些我认为可能有效的方法,但是当路由 / ng-view 时,上一个 / 下一个按钮不会按预期动态更新变化。
即在我下面的简化代码中(带有主页、关于和联系页面),上一个/下一个按钮的目标及其各自的功能nextPage() 和 prevPage() 始终与“主页”页面的上一页和下一页相关,即使另一个页面已被导航到。
index.html(重要部分)
<html ng-app="app">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
<script src="script.js"></script>
</head>
<!-- define angular controller -->
<body ng-controller="mainController">
<nav class="navbar navbar-default">
<div class="container">
<button class="btn" ng-click="prevPage()">Previous</button>
<button class="btn" ng-click="nextPage()">Next</button>
</div>
</nav>
<div id="main">
<div ng-view></div>
</div>
</body>
</html>
script.js
var app = angular.module('app', ['ngRoute']);
app.config(function($routeProvider) {
$routeProvider
// Page routes
.when('/', { templateUrl : 'pages/home.html', controller : 'mainController' })
.when('/about', { templateUrl : 'pages/about.html', controller : 'aboutController' })
.when('/contact', { templateUrl : 'pages/contact.html', controller : 'contactController' })
.otherwise( {redirectTo:'/'} );
});
// create the controller and inject Angular's $scope
app.controller('mainController', function($scope, $location) {
$scope.nextPage = function() { $location.path('/about'); };
$scope.prevPage = function() { $location.path('/contact'); };
});
app.controller('aboutController', function($scope, $location) {
$scope.nextPage = function() { $location.path('/contact'); };
$scope.prevPage = function() { $location.path('/'); };
});
app.controller('contactController', function($scope, $location) {
$scope.nextPage = function() { $location.path('/contact'); };
$scope.prevPage = function() { $location.path('/'); };
});
实现这一目标的最佳方法是什么?!
【问题讨论】:
标签: angularjs angularjs-routing