Angular 中的不同组件是否有组件保存按钮触发操作?
Have components Save button trigger action on different component in Angular?
我有一个使用 NGPrime 数据表的 angular 组件....当用户选择一行时,他们会得到一个弹出组件,让他们可以编辑数据....在他们编辑数据后,他们可以单击 'save' 按钮。如何将保存按钮单击操作发送到具有数据表的组件,以便触发数据刷新?
使用服务在组件之间建立公共 link。
假设当用户从那里点击您的组件弹出窗口时,您应该传递一个事件发射器,它将在 table 组件中被监听。所以table组件可以提供table.
的reload
你有几种方法。
如果它们是不相关的组件则
通用服务
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
@Injectable()
export class ShareService {
constructor() { }
private paramSource = new BehaviorSubject("");
sharedData = this.paramSource.asObservable();
setParam(param:string) { this.paramSource.next(param)}
}
在 appmodule 中放入 providers
providers:[ShareService ]
在组件中放入构造函数
constructor(private shareService: ShareService ){}
从第一个组件发送赞
this.shareService.setParam('Sending param');
从第二个组件收到喜欢
this.shareService.sharedData.subscribe(data=> { console.log(data); })
路由方法
你可以把参数放在路由器里然后发送。您可以像 routing.ts
一样将路由器设为参数化
{ path: 'component/:param', component: RelatedComponent },
然后在组件中你想在构造函数中像 import ActiveRoute
一样调用它
constructor(private route: ActivatedRoute){}
点赞
this.route.snapshot.paramMap.get('param')
或者如果你不想在路由中显示参数,你可以像下面的代码一样发送状态
this.router.navigate(['your_component_url'], {state: { param: 'data you send' } });
读取构造函数中的状态this.router.getCurrentNavigation().extras.state.param;
存储方式
您可以设置为 localStorage 或 sessionStorage,然后从另一个组件的存储中获取。
localStorage.setItem("param","parameter")
localStorage.getItem("param")
如果它们是父子组件,那么您也可以执行上述操作,并且可以使用
@输入法
<your_child_component param="{{ parameter}}"></your_child_component>
在子组件中 getlike
@Input param;
我有一个使用 NGPrime 数据表的 angular 组件....当用户选择一行时,他们会得到一个弹出组件,让他们可以编辑数据....在他们编辑数据后,他们可以单击 'save' 按钮。如何将保存按钮单击操作发送到具有数据表的组件,以便触发数据刷新?
使用服务在组件之间建立公共 link。
假设当用户从那里点击您的组件弹出窗口时,您应该传递一个事件发射器,它将在 table 组件中被监听。所以table组件可以提供table.
的reload你有几种方法。
如果它们是不相关的组件则
通用服务
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
@Injectable()
export class ShareService {
constructor() { }
private paramSource = new BehaviorSubject("");
sharedData = this.paramSource.asObservable();
setParam(param:string) { this.paramSource.next(param)}
}
在 appmodule 中放入 providers
providers:[ShareService ]
在组件中放入构造函数
constructor(private shareService: ShareService ){}
从第一个组件发送赞
this.shareService.setParam('Sending param');
从第二个组件收到喜欢
this.shareService.sharedData.subscribe(data=> { console.log(data); })
路由方法
你可以把参数放在路由器里然后发送。您可以像 routing.ts
一样将路由器设为参数化{ path: 'component/:param', component: RelatedComponent },
然后在组件中你想在构造函数中像 import ActiveRoute
一样调用它
constructor(private route: ActivatedRoute){}
点赞
this.route.snapshot.paramMap.get('param')
或者如果你不想在路由中显示参数,你可以像下面的代码一样发送状态
this.router.navigate(['your_component_url'], {state: { param: 'data you send' } });
读取构造函数中的状态this.router.getCurrentNavigation().extras.state.param;
存储方式
您可以设置为 localStorage 或 sessionStorage,然后从另一个组件的存储中获取。
localStorage.setItem("param","parameter")
localStorage.getItem("param")
如果它们是父子组件,那么您也可以执行上述操作,并且可以使用
@输入法
<your_child_component param="{{ parameter}}"></your_child_component>
在子组件中 getlike
@Input param;