ui-router的工作原理非常类似于Angular的路由控制,他只关注状态。

Angular模板

最简单的模板,例如main.html:

<body data-ng-app="myApp">
<h1>AngularJS Home Page</h1>
<div ui-view></div>
</body>

ui-view代表的是一个模板的占位符,例如要在ui-view下插入内容,可以通过如下代码:

var myapp=angular.module("myApp",["ui.router"]);
myapp.config(function($stateProvider,$urlRouterProvider){ $urlRouterProvider.when("","/pagetab");
$stateProvider.state("pagetab",{
url:"/pagetab",
template:"<h1>hello,AngularJs</h>"
})
});

当程序运行时,在模板中插入一段代码:效果如下:

模板将被插入哪里?

状态被激活时,它的模板会自动插入到父状态对应模板中包含 ui-view属性的 元素内部 ,如果是顶层状态,那么它的父模板就是index.html

激活状态

1)调用$state.go()方法

2)点击包含ui-self指令的链接;

3)导航到状态相关联的url

Templates模板

方法一:配置template属性,指定一段html字符串,例如:

$stateProvider.state("pagetab",{
url:"/pagetab",
template:"<h1>hello,AngularJs</h>"
})

方法二:通过配置templateUrl属性,来加载对应的模板,例如:

$stateProvider.state("pagetab",{
url:"/pagetab",
templateUrl:"pagetab.html"
})

更多模板配置方法请参考:http://bubkoo.com/2014/01/01/angular/ui-router/guide/state-manager/

综合模板与路由的知识,做一个简单的路由demo,包含的页面有main.html,pagetab.html,page1.html,page2.html,page3.html

main.html的代码如下:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Book Store</title>
<script src="Scripts/angular.js"></script>
<script src="Scripts/angular-ui-router.js"></script>
<script src="Scripts/app.js"></script>
</head> <body data-ng-app="myApp">
<h1>AngularJS Home Page</h1>
<div ui-view></div>
</body>
</html>

pagetab.html代码如下,通过设置ui-sref导航到对应的page1等:

<div>
<div>
<span style="width:100px" ui-sref=".page1"><a href="">Page1</a></span>
<span style="width:100px" ui-sref=".page2"><a href="">Page2</a></span>
<span style="width:100px" ui-sref=".page3"><a href="">Page3</a></span>
</div>
<div>
<div ui-view=""></div>
</div>
</div>

page1.html:

<div>
<div>
<h1>Page 1 content goes here........</h1>
</div>
</div>

page2.html:

<div>
<div>
<h1>Page 2 content goes here........</h1>
</div>
</div>

page3.html:

<div>
<div>
<h1>page 3 content goes here......</h1>
</div>
</div>

app.js对应的代码为:

var myapp=angular.module("myApp",["ui.router"]);
myapp.config(function($stateProvider,$urlRouterProvider){
$urlRouterProvider.when("","/pagetab");
$stateProvider.state("pagetab",{
url:"/pagetab",
templateUrl:"pagetab.html"
}).state("pagetab.page1",{
url:"/page1",
templateUrl:"page1.html"
}).state("pagetab.page2",{
url:"/page2",
templateUrl:"page2.html"
}).state("pagetab.page3",{
url:"/page3",
templateUrl:"page3.html"
})
});

对应的效果为:

点击page1,会把page1对应的html包含在pagetab.html对应的ui-view中。

Angular-ui-router路由,View管理的更多相关文章

  1. angular ui.router 路由传参数

    angular已经用了一段时间了,最近在做路由,做一下笔记. 路由跳转的时候进行穿参 ui.router方式 <a ui-sref="edit({id:5})"> 编辑 ...

  2. Angularjs ui router,路由嵌套 父controller执行问题

    解决方式来源:https://stackoverflow.com/questions/25316591/angularjs-ui-router-state-reload-child-state-onl ...

  3. 规范 : angular ui router path & params

    在seo文章中提到url的path 必须是 why-us,而不是whyUS 所以定了规范,所有的path 必须why-us path ?后尾的是用来filter的,所以可以WhyUs 如果是不需要给s ...

  4. angular 的ui.router 定义不同的state 对应相同的url

    Angular UI Router: Different states with same URL? The landing page of my app has two states: home-p ...

  5. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

  6. angular : $location & $state(UI router)的关系

    次序:angular 的 location会先跑 $rootScope.$on("$locationChangeStart", function (scope, newUrl, o ...

  7. angular当router使用userhash:false时路由404问题

    angular当router使用userhash:false时路由404问题 安装iis urlrewrite2.0组件 在根目录下创建 Web.config <configuration> ...

  8. Angular 从入坑到挖坑 - Router 路由使用入门指北

    一.Overview Angular 入坑记录的笔记第五篇,因为一直在加班的缘故拖了有一个多月,主要是介绍在 Angular 中如何配置路由,完成重定向以及参数传递.至于路由守卫.路由懒加载等&quo ...

  9. 【原创】ui.router源码解析

    Angular系列文章之angular路由 路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分. 那么,对于angular而言,它 ...

随机推荐

  1. yaffs2在am335x上实施

    一.yaffs2文件烧写(通过网口) uboot下输入如下命令: setenv ipaddr 192.168.2.110;setenv serverip 192.168.2.222;saveenv n ...

  2. Parencodings - poj 1068

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22764   Accepted: 13344 Description L ...

  3. 8148 8168 中移植live55 出现except rtsp 中途莫名的断流

    在解码中,接了浙江宇视的ipc相机,解码一般就挂了,vlc 也是中途断流.费解? vlc异常信息如下: packetizer_h264 warning: waiting for SPS/PPS pac ...

  4. Coursera machine learning 第二周 编程作业 Linear Regression

    必做: [*] warmUpExercise.m - Simple example function in Octave/MATLAB[*] plotData.m - Function to disp ...

  5. PHP、jQuery、AJAX和MySQL 数据库实例

    index.html页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  6. Sql注入_类型

    1.sql注入 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 2.sql注入类型 按照注入点类型来分类 (1)数字型注入点 在 Web ...

  7. 【python】-- web开发之JavaScript

    JavaScript JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. ...

  8. Python 中奇妙的下划线

    单个下划线(_) 通常有三种用法: 在python解释器: 单个下划线代表上次在交互解释期对话中(控制台)执行的结果.这种情况在标准的CPython解释器中首次被实现,接下来这种习惯也被保持下来: & ...

  9. 蓝屏代码stop:0X000000EA(0X85E286B8,0X8635F210,0XF7A53CBC,0X00000001)

    你这是显卡驱动问题,我把蓝屏代码都给你,以后在出现蓝屏自己看看行了. 1.0x0000000A:IRQL_NOT_LESS_OR_EQUAL ◆错误分析:主要是由问题的驱动程序.有缺陷或不兼容的硬件与 ...

  10. rest-client restclient get post写法

    get url = "https://api.weixin.qq.com/sns/jscode2session" data = { appid: "××××", ...