核心是通过 点击
首先写出来一个静态页面:
上面这个就是一个简单的静态页面,大体上的的效果是这样的:
但是我们三个页面肯定不能都显示出来对啊,我们的想法是,一开始是第一页,然后是我点击一次下一页,第一页消失,第二页出现。 所以我们可以在【上一页】【下一页】的a 标签上 更新 $scope. step上面的例子,只要一点击 【上一页】【下一页】,$scope.step就会变成1或者3,反正不等于2,所以本div(在这里表示一页)就会隐藏,和step的值相等的页面就会出现;
简单来说,href="#" 是用来 修改浏览器导航栏内的url ,而ng-click=" step=1 "则是更新步骤,控制哪些东西可以显示
到目前为止的,我们的代码是:
这里是导航栏
可以实现的功能是,我点击上边的导航栏,和上一页下一页按钮,都可以实现跳转。点击后退按钮的功能没有实现
下面是我们的关键问题,如何点击浏览器的后退按钮,页面会后退?
$scope.$watch(function () {
var url=$location.path(); return url; },function (v) { var stepnum=v.charAt(v.length-1); $scope.step=stepnum; })通过监听 $location 的path( )
1. $watch的三个参数,newValue, Oldvalue, scope2. $location 对象都有啥api ,属性?方法?常在什么时候用? path() 和 哈希值有什么区别? window.location 和$location有什么区别3. 截取字符串的最后一个
字符串的方法有哪些?如何截取字符串的最后一个?
charAt( 2 ); charAt( str.length-1 );substr(从第几个开始截取,一共要截取几个 )
substr( str.length-1, 1 );split( "要按照什么截取的字符" )
var arr=str.split("") arr.splice(arr.length-1,1 )$location都有哪些功能?
它是干什么的?
$location解析地址栏中的URL(基于window.location),让你在应用代码中能获取到。改变地址栏中的URL会反应$location服务中,反之亦然。 $location服务:* 暴露当前地址栏的URL* * 获取并监听URL。 * 改变URL。* 当出现以下情况时同步URL* * 改变地址栏 * 点击了后退按钮(或者点击了历史链接) * 点击了一个链接* 一系列方法来获取URL对象的具体内容用(protocol, host, port, path, search, hash).formatDate
什么时候用$location?
1. 对url的改变做出响应2. 你想改变当前的url时候
$location对象是需要配置的,在app.config里面进行配置;
app.config(function($locationProvider){ $locationProvider.html5Mode(false).hashPrefix('!'); })