【问题标题】:duplicate display of new data in smart table in angular 4以角度 4 重复显示智能表中的新数据
【发布时间】: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


【解决方案1】:

我在 addNewCourse() 函数中再次推送数据,所以我必须删除它。 因为event.confirm.resolve(event.newData); 正在推送数据,所以 addNewCourse() 应该如下

static addNewCourse(data)
{
    console.log(this.coursedata);
}

【讨论】:

    猜你喜欢
    • 2018-07-19
    • 2016-02-25
    • 2017-08-22
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多