ionic4-传递参数

ionic4-传递参数

环境

node 10.15.0
ionic 4.12.0
cordova 9.0
# platforms
cordova-android:8.0.0
cordova-ios: 5.0.0

欢迎访问我的专栏:
ionic4 混合开发实战-csdn
ionic4 混合开发实战-简书

路由传值

方式一(单个值)

路由定义

  {path: 'login/:id', loadChildren: './pages/login/login.module#LoginPageModule', data : {name: 'login'}},

跳转

constructor(private router: Router) {
}
this.router.navigate(['/login', id]);

或者

<a [routerLink]="[ '/login/',id]">登录</a>
<a routerLink="/login/{{id}}">登录</a>

接收

constructor(private activatedRoute: ActivatedRoute) {
}
this.activatedRoute.paramMap.subscribe(params => {
  this.id = params.get('id');
});
# 或者
this.activatedRoute.params.subscribe(params => {
  this.id = params.id
});

方式二(多个值)

跳转

constructor(private router: Router) {
}
this.router.navigate(['login'], {
  queryParams: {id: '1',name: 'test'}
});

接收

constructor(private activatedRoute: ActivatedRoute) {
  activatedRoute.queryParams.subscribe(queryParams => {
        let id = queryParams.id;
        let name = queryParams.name;
    });
}

组件间传值

父 -> 子

子组件
使用@Input()接受参数

@Component({
  selector: 'hm-upload',
  templateUrl: './upload.component.html',
  styleUrls: ['./upload.component.scss'],
})
export class HMUploadComponent implements OnInit {
  @Input() fileList: HMFile[];
  @Input() msg: string;
}
...

  <hm-upload [msg]='msgData'></hm-upload>

注意:“父”变量msgData的变化会影响子组件变量msg变化,相反则不会。

子 -> 父

子组件
使用@Output()发送数据

  @Output() onDataChange = new EventEmitter();

<hm-upload [msg]='msgData' (onDataChange)='dataChanged($event)'></hm-upload>

dataChanged(event) {
  console.log(event);
}

EventBus(事件总线)

将会在下一篇详细说明如何实现EventBus。

欢迎访问我的专栏:
ionic4 混合开发实战-csdn
ionic4 混合开发实战-简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值