首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在angular 2中将表单字段的数据(值)从一条路由传递到另一条路由

在Angular 2中,可以使用路由参数或共享服务来将表单字段的数据从一条路由传递到另一条路由。

  1. 使用路由参数传递数据:
    • 在发送数据的路由中,将数据作为参数添加到目标路由的URL中。
    • 在接收数据的路由中,通过ActivatedRoute服务来获取传递的参数值。

例如,发送数据的路由可以使用以下代码将数据添加到URL中:

代码语言:typescript
复制

import { Router } from '@angular/router';

constructor(private router: Router) {}

sendData(data: any) {

代码语言:txt
复制
 this.router.navigate(['/target-route', { data: JSON.stringify(data) }]);

}

代码语言:txt
复制

接收数据的路由可以使用以下代码来获取传递的参数值:

代码语言:typescript
复制

import { ActivatedRoute } from '@angular/router';

constructor(private route: ActivatedRoute) {}

ngOnInit() {

代码语言:txt
复制
 this.route.paramMap.subscribe(params => {
代码语言:txt
复制
   const data = JSON.parse(params.get('data'));
代码语言:txt
复制
   // 使用接收到的数据进行操作
代码语言:txt
复制
 });

}

代码语言:txt
复制
  1. 使用共享服务传递数据:
    • 创建一个共享服务,该服务包含一个可观察对象或行为主题,用于存储和传递表单字段的数据。
    • 在发送数据的组件中,将数据存储到共享服务中。
    • 在接收数据的组件中,通过订阅共享服务中的可观察对象或行为主题来获取数据。

例如,创建一个共享服务来存储和传递数据:

代码语言:typescript
复制

import { Injectable } from '@angular/core';

import { BehaviorSubject } from 'rxjs';

@Injectable({

代码语言:txt
复制
 providedIn: 'root'

})

export class DataService {

代码语言:txt
复制
 private formDataSubject = new BehaviorSubject<any>(null);
代码语言:txt
复制
 formData$ = this.formDataSubject.asObservable();
代码语言:txt
复制
 setFormData(data: any) {
代码语言:txt
复制
   this.formDataSubject.next(data);
代码语言:txt
复制
 }

}

代码语言:txt
复制

在发送数据的组件中,将数据存储到共享服务中:

代码语言:typescript
复制

import { DataService } from 'path/to/data.service';

constructor(private dataService: DataService) {}

sendData(data: any) {

代码语言:txt
复制
 this.dataService.setFormData(data);

}

代码语言:txt
复制

在接收数据的组件中,通过订阅共享服务中的可观察对象来获取数据:

代码语言:typescript
复制

import { DataService } from 'path/to/data.service';

constructor(private dataService: DataService) {}

ngOnInit() {

代码语言:txt
复制
 this.dataService.formData$.subscribe(data => {
代码语言:txt
复制
   // 使用接收到的数据进行操作
代码语言:txt
复制
 });

}

代码语言:txt
复制

这些方法可以根据具体的需求选择使用,它们都可以实现在Angular 2中将表单字段的数据从一条路由传递到另一条路由。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券