angular的路由ui.router和$q

附:双层then的运用:封装一个方法。一、在该方法的内部,(1)首先获取deferred,(2)然后进行$http请求,在$http后面的then函数里,执行deferred.resolve(result),then函数后面还有catch函数,catch函数后面还有finally函数,(3)最后返回deferred.promise;二、在该方法的外部,通过.then注入成功或失败的回调,供deferred.resolve(result)调用!

一、ui.router
ui.router和ngRoute的区别
(1)ui.router模块提供$urlRouterProvide、$stateProvider、$stateParams服务
(2)ngRoute模块提供$routeProvider、$routeParams服务
来源https://blog.csdn.net/mcpang/article/details/55101566
1、ui.router 路由模块,
(1)提供$stateProvide对象,用$stateProvider.state(stateNameString, stateConfigObject)配置路由。用template去替换<ui-view></ui-view>或<div ui-view></div>。stateConfigObject包含以下内容:

(2)提供$urlRouterProvider对象,用$urlRouterProvider.when配置与后台匹配的路由、用$urlRouterProvider.otherwise配置与后台不匹配的路由
2、ui.router实际执行步骤:
(1)定义路由状态;

(2)在HTML页面触发事件,激活路由

(3)在目标HTML页面的控制器里获取参数

3、ui.router路由嵌套:通过 .语法进行路由层级配置
案例:
案例来源:https://blog.csdn.net/u011068996/article/details/54861844
案例来源:https://www.cnblogs.com/haogj/p/4885928.html
代码示例一:index.html

代码示例二:world.html

代码示例三:index.js

二、$q
1、$q源码
$q是Angular中封装的一层Promise,通过$q.defer()平行地返回一个promise实例和三个方法。
$q.defer()==>Deferred()==>一个promise实例和三个方法;
在Angular源码中的q.js 302行:function defer() { return new Deferred(); }
在Angular源码中的q.js 306行:

2、$q案例一

3、$q案例二

4、$q案例三

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复