【发布时间】:2018-07-20 02:43:29
【问题描述】:
当我在表中添加新行时,我正在处理 angular 项目,我在我的服务中获得了正确的数据,但在表中它显示了 2 次。
以上是我的智能表代码。
<ng2-smart-table [settings]="settings" [source]="source" (createConfirm)="onCreateConfirm($event)">
</ng2-smart-table>
以下是保存功能。
add: {
addButtonContent: '<i class="nb-plus"></i>',
createButtonContent: '<i class="nb-checkmark"></i>',
cancelButtonContent: '<i class="nb-close"></i>',
confirmCreate: true,
},
onCreateConfirm(event): void {
if (window.confirm('Are you sure you want to create?')) {
event.newData['name'] += ' + added in code';
event.confirm.resolve(event.newData);
CoursesService.addNewCourse(event.newData);
} else {
event.confirm.reject();
}
}
}
service中的addNewCourse函数如下,
static addNewCourse(data)
{
this.coursedata.push(data);
console.log(this.coursedata);
}
在 coursedata 中我只获取一次数据,而在表格中显示 2 次p>
有什么帮助吗?
【问题讨论】:
-
所以在您的表中初始加载时没有双重输入?如果添加新数据,此数据在您的表中是否重复?如果是这样,那么
event.confirm.resolve(event.newData)将数据添加到表中,并且您的 CoursesService 将新数据添加到表中。 -
@SplitterAlex 那我该怎么办
-
我之前没有使用过 ng2-smart-table,但是根据文档,您可以将
mode属性从默认的inline设置为external。描述:“确定如何对操作链接(添加、编辑、删除)做出反应。'external' - 只需触发事件(链接在这里)。'inline' - 内部处理,显示表单/输入/等”所以如果你设置设置为external只有您对专用服务所做的更改才会应用。 -
@SplitterAlex 模式应该是内联的,它对我有用,我推送了两倍的数据,所以它显示了 2 次,所以我已经给出了答案
标签: angular typescript smart-table ng2-smart-table