angularJS学习小结——ngRoute(路由机制)
引言 在我们介绍路由之前我们首先谈一下SPA,所以SPA就是我们现在经常说的单页应用single page APP,为了实现 无刷新的视图切换我们之前的做法就是利用AJAX从后取出数据然后渲染在前台页面HTML中,但是AJAX有一个致命的缺 点就是不能实现浏览器的后退按钮失效,为了解决这个问题我们通常使用hash,监听hashchange事件来进行视图切 换,另一个方法是用HTML5的history API,通过pushState()记录操作历史,监听popstate事件来进行视图切换,也 有人把这叫pjax技术。基本流程如下:
路由机制,一个单页应用的各个视图就可以很好的组织起来了。 ng-route包含的内容 来灵活调用相应的方式。ng的路由(ngRoute)是一个单独的模块,包含以下内容: ?服务$location用来实现用于获取当前url以及改变当前的url,并且存入历史记录 路由机制的实现 第一步、引入两个依赖文件
因为路由机制上一个单独的模块,所以我们需要单独的引入路由文件,仅仅引入AngularJS.min.js是不包含路 由的,引入文件以后我们还需要在模块声明中注入对ng-route的依赖:
varapp=angular.module("myApp",['ngRoute']);
完成了这些,我们就可以在模板或是controller中使用上面的服务和指令了。下面我们需要定义一个路由表。 第二步:完成路由表的配置
app.config(['$routeProvider',function($routeProvider){
$routeProvider提供了定义路由表的服务,它有两个核心方法,when(path,route)和otherwise(params),先看 一下核心中的核心when(path,route)方法。 的内容($location.path)值进行匹配。如果需要匹配参数,可以在path中使用冒号加名称的方式,如:path 为/show/:name,如果地址栏是/show/tom,那么参数name和所对应的值tom便会被保存在$routeParams中,像这样: {name : tom}。我们也可以用*进行模糊匹配,如:/show*/:name将匹配/showInfo/tom。 参数说明如下:
controller//function或string类型。在当前模板上执行的controller函数,生成新的scope
我们的单页面程序都是局部刷新的,那这个“局部”是哪里呢,这就轮到ngView出马了,只需在模板中简单的 使用此指令,在哪里用,哪里就是“局部”。 通过以上我们就完成了了一个路由的全部配置过程,在没有接触路由的时候感觉路由这一块是比价难的,但是 当我们真正的了解到这一块的原理的时候并不是非常的难,路由在angularJS中是核心部分所以我们需要牢牢的掌握 这一部分。 友情推荐: 看到这可能会有人说如果有个完整的Ddeo就好了,所以说小编给大家推荐一个编写前台代码的工具RunJS并且可 以实现代码的共享,小编的这个Demo就在这上面,请点击我查看效果;点击我查看源码,这样以后我们就可以随意的 分享代码,尤其是我们在讲课的时候非常的方便! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |