【发布时间】:2020-02-23 21:14:32
【问题描述】:
我有一个按钮可以打开弹出窗口,用户可以在其中选择一些数据并添加到我的表单中。
<button type="button" class="btn btn-info btn-sm" aria-hidden="true" (click)="addData()"> Add Data</button>
addData() {
this.bsModalRef = this.modalService.show(PopupComponent,
{ initialState: { createForm: this.createForm }, ignoreBackdropClick: true, animated: true, keyboard: true, class: '' });
//some code to save below
//this.bsModalRef.content.onSave
}
上面打开一个弹出窗口,用户选择一些数据并按保存。
在我的弹出组件中,我有这个:
ngOnInit() {
this.myService.getData().subscribe((data: any[]) => {
this.myList = data.map(a => [{ name: a.name }][0]);
},
(error: any) => {
console.log(error);
});
}
然后我将 myList 绑定到我的弹出组件 html 中的选择 以上所有都可以正常工作。
问题是当用户单击添加数据时,它会打开弹出窗口并再次调用我的服务。
是否可以避免每次用户点击添加时多次服务调用。
我尝试将 api 返回的数据值设置为分配的变量,但在按钮上单击它始终为空。
请输入任何内容。
【问题讨论】:
-
上面的 Ngonit 是我的弹出组件的一部分,其中的服务调用获取所有数据并将其绑定到我的选择下拉列表,这是我的弹出组件的一部分。每次单击添加按钮时都会调用我的弹出组件 OnInit 中的服务调用。一旦我们在 myList 变量中获取数据,我想避免对 api 的后续调用。
-
所以一旦用户选择了一些数据,他们可能会回来选择/取消选择更多
标签: angular