一、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. UI Framework-1: Aura Multi-desktop

    Multi-desktop Aura now makes it possible for the same browser process to render to multiple desktops ...

  2. php 自带加密函数 mcrypt_encrypt

    <?php /** * AES128加解密类 * @author dy * */ class Aes{ //密钥 private $_secrect_key; public function _ ...

  3. linux驱动编译时候出现的问题

    1.在编译驱动的时候,提示错误,找不到<asm/xxxx.h>这些类的头文件? 答:因为在内核编译的时候,会在内核目录的include中创建一个asm文件再软链接到对应的一些架构.比如我当 ...

  4. unity gitignore

    /[Ll]ibrary/ /[Tt]emp/ /[Oo]bj/ /[Bb]uild/ /[Bb]uilds/ /Assets/AssetStoreTools* # Autogenerated VS/M ...

  5. CMSIS-RTOS的使用

    CMSIS-RTOS实现通常作为库提供.要将RTOS功能添加到现有的基于CMSIS的应用程序,需要添加RTOS库(通常是配置文件).RTOS库的可用功能在头文件cmsis_os.h中定义,该文件特定于 ...

  6. 题解 P1198 【[JSOI2008]最大数】

    说起来这还是蒟蒻AC的第一道省选线段树呢. 这道题和其他线段树最大的不同就是在于本题数组一直在增大. 寻常的线段树蒟蒻习惯用如下的结构体储存,然而对于此题就不行了: struct node{ int ...

  7. 解析XML文件之使用DOM解析器

    在前面的文章中.介绍了使用SAX解析器对XML文件进行解析.SAX解析器的长处就是占用内存小.这篇文章主要介绍使用DOM解析器对XML文件进行解析. DOM解析器的长处可能是理解起来比較的直观,当然, ...

  8. UVA 12716 GCD XOR(数论+枚举+打表)

     题意:给你一个N,让你求有多少组A,B,  满足1<= B <= A <= N, 且 gcd(A,B) = A XOR B. 思路:首先我们能够得出两个结论: A-B > ...

  9. hdoj--1034--Hidden String(dfs)

    Hidden String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  10. 【基础篇】Android手动卸载虚拟机程序

    adb shell (进入模拟器自带的操作系统) cd data/app (切换到apk的安装目录) rm apk文件全称 例 : rm com.test.TestActivity.apk (手动删除 ...