angularJS的路由!
angularJS 路由:(分发需求)
angularJS 中路由是单独提供的功能模块,ngRoute 也是一个单独发行的文件
可以通过 npm 去安装这个包:angular-route
<script type='text/javascript' src='bower_components/angular/angular.js'></script>
<script type='text/javascript' src='bower_components/angular-route/angular-route.js'></script>
<script type="text/javascript">
// 创建一个模块
var myApp = angular.module('myApp',['ngRoute']);
//配置路由
myApp.config(['$routeProvider',function($routeProvider){ }]);
</script>
做路由的配置:
配置路由的规则就是:什么样的请求,就找到什么样的控制器;
when就是"当"的意思,”当“这个的时候,请求这个控制器:
<script type='text/javascript' src='bower_components/angular/angular.js'></script>
<script type='text/javascript' src='bower_components/angular-route/angular-route.js'></script>
<body ng-app="myApp">
<ul>
<li><a href="#/a">a</a></li>
<li><a href="#/b">b</a></li>
<li><a href="#/c">c</a></li>
</ul>
<div ng-view></div>
</body>
<script type="text/javascript">
// 创建一个模块
var myApp = angular.module('myApp',['ngRoute']);
//配置路由
myApp.config(['$routeProvider',function($routeProvider){
$routeProvider
.when('/students/:name?',{
controller:'AController',
templateUrl:'./view/a.html'
})
.when('/a',{
controller:'AController',
templateUrl:'./view/a.html'
})
.when('/b',{
controller:'BController',
templateUrl:'./view/b.html'
})
.when('/c',{
controller:'CController',
templateUrl:'./view/c.html'
})
.otherwise({
//重定向,做跳转
redirectTo:'/c'
});
}]);
myApp.controller('AController',['$scope','$routeParams',function($scope,$routeParams){
$scope.title = '你好'+$routeParams+'这里是A控制器';
}]);
myApp.controller('BController',['$scope',function($scope){
$scope.title = '这里是B控制器';
}]);
myApp.controller('CController',['$scope',function($scope){
$scope.title = '这里是C控制器';
}]);
</script>
在页面请求这个路由的时候,会发现多加载了一个View模板文件:
解决方法:使用 script 标签
另外的一种写视图的方法:(写到这个里面)
<script type="text/ng-template"></script>
<script id="a_tmpl" type="text/ng-template">
<h1>{{title}}</h1>
</script>
修改模板文件:
.when('/a',{
controller:'AController',
templateUrl:'a_tmpl'
})
这里是:找是否存在一个 a_tmpl 的script , 如果有就把他作为模板去使用
我们可以使用 “ : name”去匹配任意的字符串:
//.when('/students/:name?',{
.when('/students/:name',{
controller:'AController',
templateUrl:'./view/a.html'
})
这里的 “:”号是一个占位符,“?”说明这个位置可以省略:
例如:请求这个地址,也是跳转到a控制器,就是后面的?表示后面的可以省略
http://127.0.0.1/angularjs/domo/22.ng-route01.html#/students/
myApp.controller('AController',['$scope','$routeParams',function($scope,$routeParams){
$scope.title = '你好'+$routeParams+'这里是A控制器';
}]);
.when('/students/:name',{
controller:'AController',
templateUrl:'./view/a.html'
})
myApp.controller('AController',['$scope','$routeParams',function($scope,$routeParams){
$scope.title = '你好'+$routeParams+'这里是A控制器';
}]);
例如请求这个:
http://127.0.0.1/angularjs/domo/22.ng-route01.html#/student/zhangsan
看到的结果就是:你好zhangsan这里是A控制器
angularJS的路由!的更多相关文章
- AngularJS的路由、模块、依赖注入
AngularJS的路由在实际应用中更多是由另外封装好的angular-ui-router.js实现的! 为什么不用Ajax而要用前端路由?
- AngularJs ui-router 路由的介绍
AngularJs ui-router 路由介绍 野兽之前有写过一篇关于Angular自带的路由:ngRoute.今天来说说Angular的第三方路由:ui-router.那么有人就会问:为什么Ang ...
- AngularJS笔记---路由视图
最近有同事提到过关于ng-view的使用, 其实自己也不懂了,由于最近一直在做AngularJs的Rearch,所以就看了一些关于ng-view的国外博客. 做过ASP.NET MVC4的都知道, 我 ...
- AngularJs ng-route路由详解
本篇基于ng-route来讲下路由的使用...其实主要是 $routeProvider 搭配 ng-view 实现. ng-view的实现原理,基本就是根据路由的切换,动态编译html模板. 更多内容 ...
- 关于js单页面实现跳转原理以及利用angularjs框架路由实现单页面跳转
还记得我们刚开始学习html时使用的锚节点实现跳转吗? <a href="#target">我想跳转至目标位置</a> <p>第一条</p ...
- AngularJs ui-router 路由的简单介绍
之前有写过一篇关于Angular自带的路由:ngRoute.今天来说说Angular的第三方路由:ui-router.那么有人就会问:为什么Angular有了自带的路由,我们还需要用ui-router ...
- AngularJS(16)-路由
AngularJS 路由 本章节我们将为大家介绍 AngularJS 路由. AngularJS 路由允许我们通过不同的 URL 访问不同的内容. 通过 AngularJS 可以实现多视图的单页Web ...
- [AngularJS] “多重路由”嵌套模块——AngularJS“路由”嵌套学习资料教程
这是小编的一些学习资料,理论上只是为了自己以后学习需要的,但是还是需要认真对待的 以下内容仅供参考,请慎重使用学习 1.AngularJS路由嵌套 Angularjs本身自带路由模块,可以满足通过不同 ...
- 关于angularjs中路由页面强制更新的问题
有这么一个问题,在页面内路由页面跳转时,第一次跳入路由页面时是正常的,但是第二次会记住第一次时的状态,有时候并不想这样,想强制更新这个路由页面. 有一种方式就是使用 ui-sref-opts功能,我试 ...
随机推荐
- js类型转换 之 转数字类型
手动将各类型 转换成 数字类型 JS提供了三种方法: Number(object); parseInt(string, radix); parseFloat(string, radix). 三种方法具 ...
- 普通windows版本安装winServer的特色功能 以dedup功能为展示点
安装 Windows 功能角色 1.选择安装源 在 Windows 8.1 系统上不存在重复数据删除功能,需要从对应的服务器版本,即 Windows Server 2012 R2 上提取相关文件. 2 ...
- Hibernate查询_HQL_EJBQL_QBC_QBE
查询按功能强弱可以分为以下几种:Native SQL > HQL > EJBQL > QBC > QBE 1.Native SQLNative SQL为数据库系统本身的SQL, ...
- bootstrap -- css -- 辅助类
文本 文本颜色 如果文本是个链接,则鼠标移动到链接文本上的时候,文本会变暗 .text-muted:灰色 .text-primary:浅蓝色 .text-success:绿色 .text-info:深 ...
- sql字符串的拼接 (字符串和二进制,erlang的mysql驱动)
1> list_to_binary(["select * from aa limit","1",",","97"] ...
- 【Java面试题】10 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
1.abstract是抽象的,指的是方法只有声明而没有实现,他的实现要放入声明该类的子类中实现. 2.static是静态的,是一种属于类而不属于对象的方法或者属性 3.synchronized 是同步 ...
- 在Office上怎么用MathType编辑公式
随着无纸化的办公程序越来越深入普及到社会的各个层面,很多资料都是电子档.从前手写的内容全都转换到了电脑上.用Office办公时,有一个很大的问题,那就是其中的公式要怎么编辑? 从前用手写毫无困难,什么 ...
- MathType中常遇到的几个问题
每次打开别人的论文,发现公式文字都排版得非常整齐,公式也编辑得非常漂亮,看起来就非常得赏心悦目.再打开自己的论文,一片凌乱,自己不想都再看,公式编辑得乱七八糟,符号不够规范,大小不够统一,你自己都觉得 ...
- [转]ASP.NET MVC 5– 使用Wijmo MVC 5模板1分钟创建应用
开始使用 使用ComponentOne Studio for ASP.NET Wijmo制作MVC5应用程序,首先要做的是安装Studio for ASP.NET Wijmo . 测试环境 VS201 ...
- windows平台的游戏运行库
每一个都在PC上玩过游戏的人,都知道要安装一些必备的游戏运行库,游戏才能运行,这里指的PC是特指Windows操作系统平台.一般来说最常见的运行库是DirectX.Microsoft Visual C ...