我是新来的,使用angular8和库ngx-smart-modal来创建一个客户列表,每个客户都有一个按钮,将其从列表中删除。当我单击按钮时,我将显示一个确认模式,并在单击接受时,将客户端代码传递给另一个组件,从而搜索该代码并从数组列表中删除情感索引。
问题是:在打开的第一个模式中,“ onDataAdded”被调用一次(预期行为)。在第二个中被调用两次(不期望),所以...
当我单击“删除”时,它会从“客户端”组件中触发此功能,从而打开确认模式并等待响应(onDataAdded):
delClientModal( index: number ) {
this.clientToRemove = this.clients[index];
this.clientService._passClient(this.clients[index]);
this.ngxSmartModalService.getModal('delClientModal').open();
this.ngxSmartModalService.get('delClientModal').onDataAdded.subscribe((data: any) => {
const indexToRemove = this.clients.findIndex(i => i.clientcode === data);
if (indexToRemove >= 0) {
this.clients.splice(this.clients.findIndex(i => i.clientcode === data), 1);
}
});
}
当我单击接受时,它将触发“客户端”组件的此功能,并将客户端代码发送至clientService(用于api操作),并将数据设置为反模式以供“ onDataAdded”捕获:
delClient(clientcode: string) {
this.clientService._deleteClient(this.client);
this.ngxSmartModalService.setModalData(clientcode, 'delClientModal');
this.ngxSmartModalService.resetModalData('delClientModal');
}
我做错了什么?