在 Angular 4 上将数据注入 Bootstrap 模态中的组件
Inject data into component in Bootstrap Modal on Angular 4
我正在使用 @ng-bootstrap/ng-bootstrap,它将 Bootstrap 个组件添加到 Angular。您可以将组件注入打开的模态框,因此注入的组件构成打开的模态框的body/content。
我有一个 Player
的列表。当我点击一个播放器时,我想打开一个模式,其中包含点击播放器的数据。我可以像这样打开带有注入 PlayerComponent
的模式。
constructor(
private modalService: NgbModal
) { }
openPlayerModal() {
const modalRef = this.modalService.open(PlayerComponent)
}
问题是... 我如何向组件注入额外的数据以让它知道要获取哪些玩家的数据? 例如我可能在 PlayerComponent
上有一个 OnInit
接口,它根据 modalService.open()
调用提供的 ID 从 API 获取数据。
似乎@ng-angular/ng-angular
允许您在实例化后触摸组件实例。所以你可以修改这些值。
所以解决方案是:
constructor(
private modalService: NgbModal
) { }
openPlayerModal() {
const modalRef = this.modalService.open(PlayerComponent)
modalRef.componentInstance.player_id = 1;
}
然后让组件在 player_id
上使用 @Input()
装饰器。
export class PlayerComponent {
@Input() player_id;
...
}
我正在使用 @ng-bootstrap/ng-bootstrap,它将 Bootstrap 个组件添加到 Angular。您可以将组件注入打开的模态框,因此注入的组件构成打开的模态框的body/content。
我有一个 Player
的列表。当我点击一个播放器时,我想打开一个模式,其中包含点击播放器的数据。我可以像这样打开带有注入 PlayerComponent
的模式。
constructor(
private modalService: NgbModal
) { }
openPlayerModal() {
const modalRef = this.modalService.open(PlayerComponent)
}
问题是... 我如何向组件注入额外的数据以让它知道要获取哪些玩家的数据? 例如我可能在 PlayerComponent
上有一个 OnInit
接口,它根据 modalService.open()
调用提供的 ID 从 API 获取数据。
似乎@ng-angular/ng-angular
允许您在实例化后触摸组件实例。所以你可以修改这些值。
所以解决方案是:
constructor(
private modalService: NgbModal
) { }
openPlayerModal() {
const modalRef = this.modalService.open(PlayerComponent)
modalRef.componentInstance.player_id = 1;
}
然后让组件在 player_id
上使用 @Input()
装饰器。
export class PlayerComponent {
@Input() player_id;
...
}