(1)设置路由
在.config()方法中使用 s t a t e P r o v i d e r (不是 stateProvider(不是 stateProvider(不是routeProvider)来配置应用或者模块的state:
Js代码
- $stateProvider.state(‘state名’, {设置信息});
但是默认otherwise需要使用$urlRouterProvider来设置
Js代码
- $urlRouterProvider.otherwise(‘/tab/home’);
设置whenPath(可用正则),当匹配是直接跳转到toPath
Js代码
- $urlRouterProvider.when(whenPath, toPath);
自定义URL捕获处理,handler方法有一个参数$location返回一个path
Js代码
- $urlRouterProvider.rule(handler);
例如:
Js代码
-
$stateProvider
-
.state(“emp”,{
-
url:“/emp”
-
,templateUrl:“list.html”
-
,controller:“ListCtrl”
-
})
-
.state(“emp.detail”,{
-
url:“/:empID”
-
,templateUrl:“emp.html”
-
,controller:“EmpCtrl”
-
});
ngRoute的设置方法:
Js代码
- $routeProvider.when(‘url’, {设置信息});
例如:
Js代码
-
$routeProvider
-
.when(“/emp”,{
-
templateUrl:“list.html”
-
,controller:“ListCtrl”
-
})
-
.when(“/emp/:empID”){
-
templateUrl:“emp.html”
-
,controller:“EmpCtrl”
-
};
(2)层次化
state可以嵌套,state名必须唯一,通过state名中的点来划分Parent/child层次。
格式为:父View.子View
比如:items.detail是items的子View。
Js代码
-
$stateProvider
-
.state(“items”, {
-
abstract: true,
-
url: “/items”
-
templateUrl: “items.html” // 必须包含
-
})
-
.state(“items.detail”, {
-
url: “/detail”, // URL就是"/items/detail"
-
templateUrl: “items-detail.html”
-
})
-
.state(“items.info”, {
-
url: “/info”, // URL就是"/items/info"
-
templateUrl: “items-info.html”
-
});
(3)设置信息
url:默认相对路径(以^开头的是绝对路径)
views:每个子视图可以包含自己的模板、控制器和预载入数据。
abstract:设置为true时,只能被继承不能直接切换到此state
template、templateUrl、templateProvider:HTML字符串或者返回HTML字符串的函数、HTML模板的路径或者返回HTML模板路径的函数
controller、controllerProvider:可以是一个控制器函数或者已经被注册的控制器名称,controllerProvider是一个注入函数返回控制器函数或控制器名称
resolve:在路由到达前预载入一系列依赖或者数据,然后注入到控制器中。
data:数据不会被注入到控制器中,用途是从父状态传递数据到子状态。
onEnter/onExit:进入或者离开当前状态的视图时会调用这两个函数
URL使用举例:
url: ‘/inbox’
url: ‘/inbox/:inboxId’
url: ‘/inbox/{inboxId}’
url: ‘/inbox/{inboxId:[0-9a-fA-F]{6}}’
url: ‘/inbox/{inboxId:.*}’
url: ‘/inbox?sort’
url: ‘/inbox/:inboxId/messages/{sorted}?from&to’
url: ‘/party/:partyID/:partyLocation’
url: ‘/product/info/favorite?pid&jancode&showAddFavorite&fromPg’
(4)指定View名
Html代码
Js代码
-
.state(“emp.detail”),{
-
url:“/:empID”
-
,views:{
-
view1:{
-
templateUrl:“view1.html”
-
,controller:“View1Ctrl”
-
}
-
,view2:{
-
templateUrl:“view1.html”
-
,controller:“View1Ctrl”
-
}
-
}
-
}
初始View
Js代码
-
.state(“emp.detail”),{
-
url:“/:empID”
-
,views:{
-
“”:{
-
templateUrl:“emp.html”
-
,controller:“EmpCtrl”
-
}
-
}
-
}
view@state
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
更多面试题
**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等
资料获取方式:点击蓝色传送门免费获取
大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
更多面试题
**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等
资料获取方式:点击蓝色传送门免费获取
[外链图片转存中…(img-AlyZNQOu-1712211892855)]