一、angular路由是什么?

  为了实现SPA多视图的切换的效果,其原理可简述为每个 URL 都有对应的视图和控制器。所以当我们给url后面拼上不同的参数就能通过路由实现不同视图的切换。

二、文件总览

  

  1.新建文件

    一级目录新建ngRoute.html(为主页面,里面进行路由配置)

    一级目录新建view文件夹,里面再新建三个子页面aboutus.html,home.html,order.html

    一级目录存放angular.js和angular-route.js文件,文件存放位置依自己喜好即可

  

  2.ngRoute.html代码展示

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="angular.min.js"></script>
<script src="angular-route.js"></script>
</head>
<body ng-app='myApp'>
<a href="#/home">HOME</a>
<a href="#/aboutus">AHOUTUS</a>
<a href="#/order">ORDER</a>
<!--ng-view相当于之前的div#container,用来展示子视图-->
<ng-view></ng-view>
<!--ng-view和下面的代码等价-->
<!--<div id="container" ng-view></div>-->
</body>
<script>
var app=angular.module("myApp",['ngRoute']);
//配置路由
app.config(function($routeProvider){
//如果是home 让ng-view里面的视图是home.html
$routeProvider
.when('/home',{
templateUrl:'view/home.html',
controller:'homeVC'
})
.when('/aboutus',{
templateUrl:'view/aboutus.html',
controller:'aboutusVC'
})
.when('/order',{
templateUrl:'view/order.html',
controller:'orderVC'
})
.otherwise({
redirectTo:'/home' //重定向到home页面
})
});
//配置Controller
app.controller('homeVC',function($scope,$routeParams){
console.log($routeParams);
$scope.title='我是homeVC'
});
app.controller('aboutusVC',function($scope){
$scope.title='我是aboutusVC'
});
app.controller('orderVC',function($scope){
$scope.title='我是orderVC'
}); </script>
</html>

  页面定义了三个路由,并默认重定向到了home页面,三个页面分别配置控制器controller,里面都定义了变量title的值。结构层的a标签通过#/参数的形式给url添加参数,然后根据定义的路由找到相应的参数,将相应的子页面放入ng-view容器中。

  

  3.子页面代码展示

<h1>{{title}}</h1>

  为了简化操作,三个子页面都只存放了一条相同的代码。title变量因为控制器赋值不同而展示不同的信息。

三、效果展示

  打开页面,默认展示home子页面信息,如下:

  点击AHOUTUS,子页面进行切换,如下:

  点击ORDER,如下:

  这样就实现了angular一级路由的切换效果,用来实现移动端导航还是很使用的,但若是需要二级路由,三级路由,这时我们就需要用到第三方路由,由于是采用的第三方插件,所以写法和用法有些差异,angular路由(第三方路由篇)做详细介绍。

angular路由(自带路由篇)的更多相关文章

  1. angular路由——ui.route

    angular路由 使用案例 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  2. angular路由详解:

    1.$routeProvider ngRoute模块中的服务 2.otherwise:设置用于路由改变时,与任何其他定义的路由无法匹配的时候执行的代码 3.when:为$route服务定义新的路由 例 ...

  3. angular 路由的引用

    使用angular路由 遇到的坑. 使用cmd 安装好node.js 安装成功 输入node  -v 能查看版本说明安装成功 搭建angular项目输入命令 npm install  -g  angu ...

  4. angular 路由项目例子

    angular 路由是我在工作中体验非常便捷的一点, 这是详细的API ,查看API 可以了解很多东西, https://github.com/angular-ui/ui-router/wiki/Qu ...

  5. Angular Material 教程之布局篇

    Angular Material 教程之布局篇 (一) : 布局简介https://segmentfault.com/a/1190000007215707 Angular Material 教程之布局 ...

  6. Angular路由参数传递

    一.路由时传递参数的方式 1.在查询参数中传递数据 //页面 <a routerLink="/product" [queryParams]="{id:1}" ...

  7. Angular路由守卫 canActivate

    作用 canActivate 控制是否允许进入路由. canActivateChild 等同 canActivate,只不过针对是所有子路由. 关键代码 创建路由守卫 import { Injecta ...

  8. Angular路由守卫 canDeactivate

    目的 离开页面时,做出逻辑判断 以ng-alain的项目为基础做演示 效果如图: 关键代码 定义一个CanDeactivateGuardService export class CanDeactiva ...

  9. Angular 路由守卫

    1. 路由 Angular路由: 可以控制页面跳转:可以在多视图间切换: 2. 路由守卫 Angular路由守卫: 在进入或离开某路由时,用于判断是否可以离开.进入某路由::: return true ...

随机推荐

  1. Debian9.5 系统Samba配置说明

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件.SMB(Server Messages Block,信息服务块)通信协议是微软(Microsoft)和英特尔(Intel)在198 ...

  2. pycaffe 可视化常用

    net.params['layername'].[0]/[1] caffe的一个程序跑完之后会在snapshot所指定的目录下产生一个后缀名为caffemode的文件,这里存放的就是我们在训练网络的时 ...

  3. ZOJ-3261 Connections in Galaxy War 并查集 离线操作

    题目链接:https://cn.vjudge.net/problem/ZOJ-3261 题意 有n个星星,之间有m条边 现一边询问与x星连通的最大星的编号,一边拆开一些边 思路 一开始是真不会,甚至想 ...

  4. 【redis】redis命令集

    参考资料: http://www.cnblogs.com/woshimrf/p/5198361.html

  5. Git 如何把master的内容更新到分支

    Background: 当有人对master进行更新之后,你想让已经创建的分支内容更新到master的最新状态, bpan@5CG7022BM2 MINGW64 /d/GitRep/JIRA_Exte ...

  6. hiho 1068 重新整理的 Sparse-Table(RMQ)模板

    http://hihocoder.com/problemset/problem/1067代码: #include <iostream> #include <cstdio> #i ...

  7. POJ 3863 Business Center

    Business Center Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Origina ...

  8. HDU——T 3342 Legal or Not

    http://acm.hdu.edu.cn/showproblem.php?pid=3342 Time Limit: 2000/1000 MS (Java/Others)    Memory Limi ...

  9. 学习笔记 Java_静态_继承 2014.7.12

    一.静态 1.构造函数:       特点:       1. 函数名和类名同样.       2. 不用定义返回值类型(和void不是一回事,而构造函数是根本不用定义返回值类型).       3. ...

  10. Please ensure that adb is correctly located at &#39;D:\Android\android-sdk\platform-tools\adb.exe&#39; and

    1.启动任务管理器 2.找到百度安全组件杀掉进程. 3.一般都是组件给禁止了.