发表于: 2020-08-26 21:41:31
0 2140
一,今天完成的事情
路由守卫的意义与用途:
该用户可能无权导航到目标组件。
可能用户得先登录(认证)。
在显示目标组件前,你可能得先获取某些数据。
在离开组件前,你可能要先保存修改。
你可能要询问用户:你是否要放弃本次更改,而不用保存它们?
你可以往路由配置中添加守卫,来处理这些场景。
守卫返回一个值,以控制路由器的行为:
路由器可以支持多种守卫接口:
用
CanActivate
来处理导航到某路由的情况。用
CanActivateChild
来处理导航到某子路由的情况。用
CanDeactivate
来处理从当前路由离开的情况.用
Resolve
在路由激活之前获取路由数据。用
CanLoad
来处理异步导航到某特性模块的情况。
管理特性区的文件是这样的:
src/app/admin
admin-routing.module.ts
把 AdminModule
导入到 app.module.ts
中,并把它加入 imports
数组中来注册这些管理类路由
Resolve: 预先获取组件数据
注意以下三个要点:
路由器的这个
Resolve
接口是可选的。CrisisDetailResolverService
没有继承自某个基类。路由器只要找到了这个方法,就会调用它。
路由器会在用户可以导航的任何情况下调用该解析器,这样你就不用针对每个用例都编写代码了。
在任何一个解析器中返回空的
Observable
就会取消导航二,.input和label联合使用
通过为input设置属性id,在label标签中设置for=id使label文本与对应的inpu他结合起来。
label标签包裹input标签,点击label时,label两次响应,即label本身触发和input触发后
冒泡到label上。(由于事件冒泡机制的存在,父节点所绑定的点击事件会被触发两次。)
label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在
label
元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
三.定位中的relative的使用场景
relative相对于自身进行定位,不脱离文档流也不脱离文本流
float脱离文档流但是不脱离文本流,所以会出现float将非定位盒子覆盖掉,
但是不会覆盖非定位盒子里面的文本,这样会出现文本环绕的效果。而对于
absolute元素会把非定位和自身位置和开面的文本都覆盖掉
relative一般使用设置给absolute的父层,这样absolute会依照absolute
父层的边界进行定位---也就是说给absolute元素提供定位基准
relative不会影响页面其他的布局,因为他相对自身移动时候仍然会保留自身
原始的位置,只是视觉上的偏移,原来的DOM仍然存在
relative会对overflow有限制作用
relative会对z-index有限制作用,,设置了定位元素的z-index值为数值可以
创建”层叠上下文”relative的top/bottom同时使用只有top生效,
left/right同时使用只有left生效
评论