使用ngx-bootstrap从angular中的模态更新数据

时间:2019-02-28 17:24:15

标签: angular modal-dialog ngx-bootstrap

我有一个角度项目,我正在尝试使用Fitting 3 regressors... Fitting regressor1: randomforestregressor (1/3) Fitting regressor2: lgbmregressor (2/3) Fitting regressor3: pipeline (3/3) Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2963, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "C:\ProgramData\Anaconda3\lib\site-packages\mlxtend\regressor\stacking_regression.py", line 154, in fit meta_features = self.predict_meta_features(X) File "C:\ProgramData\Anaconda3\lib\site-packages\mlxtend\regressor\stacking_regression.py", line 221, in predict_meta_features return np.column_stack([r.predict(X) for r in self.regr_]) File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\lib\shape_base.py", line 369, in column_stack return _nx.concatenate(arrays, 1) ValueError: all the input array dimensions except for the concatenation axis must match exactly 更新数据。我有表格并安装了依赖项。每当我单击“编辑”按钮时,模式就会打开编辑表单,并填充数据。到目前为止,这就是我想要的。但是,每当我从模式更改值时,表也会更改,它会实时反映表中的数据。我想做的是在编辑后单击模态外部时,由于我尚未保存表格,因此希望将表格恢复为原始表格。基本上,如果用户编辑数据然后在模式之外单击,我想防止用户出错。他们会认为数据已经更新,因为它反映了表格。但是,此更新在客户端,刷新后将恢复为原始形式。我该如何预防?基本上,我的解决方案是用户在模态关闭之外单击。而且我需要重置表中数据的已编辑部分。

这是一个工作代码。任何帮助,将不胜感激。

working sample on stackblitz

1 个答案:

答案 0 :(得分:1)

对象通过引用传递,因此本质上this.sample和数组中相应的sample指向同一对象。您可以改为传递索引,然后使用传播运算符。因此,将索引添加到您的迭代中:

<tr *ngFor="let sample of samples; let i = index">

将索引传递给click函数:

(click)="updateSample(i, updateSampleModal)

和函数本身,您在组件中声明了变量index

updateSample(index: any, modal) {
  this.index = index;
  this.sample = { ...this.samples[index]};
  this.modalRef = this.modalService.show(modal,
    Object.assign({}, { class: 'gray modal-lg' })
  );
}

如果单击保存按钮,则将值分配给数组中的特定样本:

update(sample) {
  this.samples[this.index] = sample;
}

您的 StackBlitz