Angular 样式绑定以及父子传值还有路由

样式绑定

样式绑定可以根据某些条件达成或否,使用语法为[class.classname]

如果hero === selectedHero条件成立,则会添加css类为hero

html 复制代码
<li *ngFor="let hero of heroes"
  [class.selected]="hero === selectedHero"
  (click)="onSelect(hero)">
  <span class="badge">{{hero.id}}</span> {{hero.name}}
</li>

父子传值

在组件嵌套过程中,如果需要父组件向子组件传值

  1. 父组件使用子组件选择器
html 复制代码
<son></son>
  1. 父组件为子组件进行属性赋值,传递变量
html 复制代码
<son [son_var]='father_var'></son>
  1. 父组件定义father-var
js 复制代码
this.father_var = 'abc'
  1. 子组件定义son_var,并使用@Input()装饰
js 复制代码
@Input() son_var?: String; 

路由

js 复制代码
import { Router, ActivatedRoute, ParamMap, Params } from '@angular/router';

angular的路由中,主要包含如上三款api


要想在组件中使用路由服务,可以通过注入的方式

typescript 复制代码
constructor( 
	private activateInfo:ActivatedRoute
    private router:Router  
) 

Router

运行时执行的路由对象,可以通过navigatenavigateByUrl方法导航至指定路由

  • 路由路径传参
typescript 复制代码
this.router.navigate(
	['/path', 1]
)
// path/1
  • 路由传参
typescript 复制代码
this.router.navigate(
	['/path'],{
		queryParams: {
			id : 1,
			other: 'abc'
		}
	}
)
// path?id=1

ActivateRouter

当前激活的路由对象,保存着当前路由信息,信息地址,路由参数等

  • 查询路由参数: params
js 复制代码
/product?id=1&name=2
this.activateInfo.snapshot.params["id"]
typescript 复制代码
this.route.params.subscribe(
    params => {
    	this.name = params['id']
    }
)
  • 路由路径参数: queryParams
js 复制代码
{ path: /product/:id } => /product/1
this.activateInfo.snapshot.queryParams["id"]
typescript 复制代码
this.route.queryParams.subscribe(
    params => {
    	this.name = params['id']
    }
)
  • 路由包含数据获取: data
typescript 复制代码
{
    path: '',
    component: InterviewSetComponent,
    data: {
      title: '标题',
    }
}

获取包含的title数据可以

typescript 复制代码
this.activateInfo.snapshot.data.title;

通配路由

当用户试图导航到那些不存在的应用部件时,在正常的应用中应该能得到很好的处理

要在应用中添加此功能,需要设置通配符路由

当所请求的 URL 与任何路由器路径都不匹配时,Angular 路由器就会选择这个路由

typescript 复制代码
{ path: '**', component: }

重定向

要设置重定向,使用路由的redirectTo属性完成

重定向路由需要一个 pathMatch 属性,来告诉路由器如何用 URL 去匹配路由的路径

js 复制代码
{ 
    path: '',   
    redirectTo: '/first-component', 
    pathMatch: 'full' 
}, // redirect to `first-component`

pathMatch的两个属性

full: 匹配的路由完整等于path所指明的属性

prefix: 以指定的路径开头匹配即跳转

相关推荐
风清云淡_A2 天前
【angular19】入门基础教程(三):关于angular里面的响应式数据入门使用
前端·angular.js
风清云淡_A8 天前
【angular19】入门基础教程(一):项目的搭建与启动
前端·angular.js
懿瑾11 天前
GitLab Auth2授权-Express + passport-gitlab2
gitlab·angular.js
啊花是条龙11 天前
在 Angular 中使用 ECharts 并处理 xAxis 标签的点击事件
前端·angular.js
啊花是条龙12 天前
Angular 开发指南:组件、数据绑定、指令、服务、HTTP、路由和表单
前端·angular.js
CF14年老兵13 天前
你可以使用这些技巧将 Web 应用程序的大小减小数倍
vue.js·angular.js
xianshenglu16 天前
我的Angular总结:建议使用FormGroup.controls 来访问子表单控件
前端·angular.js
布兰妮甜20 天前
Angular 框架详解:从入门到进阶
前端·javascript·前端框架·angular.js
前端小干将22 天前
Angular学习入门指南
angular.js
黄金蛋炒饭112323 天前
AngularJS
angular.js