发表于: 2017-05-10 23:54:05

2 952



今天完成的事情:


学习了ngRoute来完成单页面的跳转;这个单页面跳转还是比较有好处的:按照我们以前的思路做页面跳转都是


些一个html然后用a标签去跳转到另一个页面;这样的话每个页面做一个html,通过路由进行跳转,不仅在时间上


会有延迟,在某些特殊的浏览器(最典型的如微信内置浏览器)中,跳转过程中会出现短暂的白页。因此,我们在


开发过程中,将页面逻辑封装到同一个html中。当系统第一次加载页面时,将所有页面全部加载进去,然后通过


angularJS内置的路由进行加载;这样效率相对来说就会高出很多;


<body ng-app="myApp">
<div class="head">
<h3>萝卜多后台管理系统</h3>
<h4>超级管理员<button>退出</button></h4>
</div>
<div class="content">
<div class="left">
<ul>
<li><a href="#/welcome">公司列表</a></li>
<li><a href="#/list">新增信息</a></li>
<li><a href="#/add">上传图片</a></li>
</ul>
</div>
<div class="right"ng-view=""></div>
</div>
<script src="../angular-1.4.6/angular.min.js"></script>
<script src="../angular-1.4.6/angular-route.js"></script>
<!--<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>-->
  <!--<script src="https://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>-->
<script src="app.js"></script>
</body>
</html>


首先要在body中ng-app声明 body元素是 AngularJS 应用程序 的"所有者"。


当我们点击a标签中的任意一个链接时,向服务端请的地址都是一样的 。 因为 # 号之后的内容在向服务端请求时


会被浏览器忽略掉。 所以我们就需要在客户端实现 # 号后面内容的功能实现。 AngularJS 路由 就通过 # + 标记 


帮助我们区分不同的逻辑页面并将不同的页面绑定到对应的控制器上。然后用 ngRoute 模块作为主应用模块的依


赖模块。


对了,还要引入angular js文件和route.js;我把晚间下载到本地了,使用cdn链接引入也是可以的,如下:

  <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>   

  <script src="http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>


好像还有其他的引入方式;


然后引入自己的js文件app.js;


angular.module('myApp',['ngRoute'])
.config(['$routeProvider', function($routeProvider){

$routeProvider

  .when('/welcome',{template:'公司列表'})

   .when('/list',{template:'公司信息'})
   .when('/add',{template:'图片上传'})
   .otherwise({redirectTo:'/welcome'});
   }]);


ngularJS 模块的 config 函数用于配置路由规则。通过使用 configAPI,我们请求把$routeProvider注入到我们的


配置函数并且使用$routeProvider.whenAPI来定义我们的路由规则。$routeProvider 为我们提供了 


when(path,object) & otherwise(object) 函数按顺序定义所有路由,函数包含两个参数:第一个参数是 URL 或者 


URL 正则规则。 第二个参数是路由配置对象。


template中文翻译是模板的意思:在这里可以使用template在ng-view中插入html;


 .otherwise({redirectTo:'/welcome'});otherwise中文意思大概是否则的意思;这段代码表示当页面刚跳转过来的


时候默认的页面是welcome的这个页面;


明天计划做的事情:学习angular中的angular双向绑定,和uiRoute;


遇到的问题:在菜鸟教程里面没发现有uiRoute的教程,后来听师兄说这个uiRoute不是angular中自带的路由,


在技能树学习资料中看到一篇文章关于uiRoute的教程,看了一眼感觉好像介绍的挺详细的,写完日报看一下;


收获:ngRoute的原理,以及使用方法;





返回列表 返回列表
评论

    分享到