angular - 如何删除 ng2-smart-table 中的一行

标签 angular ng2-smart-table

我正在开发一个 Angular 项目。我在项目中使用 ng2-smart-table 作为表格。我已经连接到 google cloud firestore,现在我可以使用 firestore 添加和检索数据。我想创建一个删除行的选项。 我该怎么做? 我将上述表格添加到制造组件中。

ma​​nufacturer.component.ts

import { Component, OnInit } from '@angular/core';
import { ManufactureService } from './manufacture.service';
import { Manufacture } from './manufacture.model';

@Component({
selector: 'ngx-manufacture',
styles: [],
template: `
    <ng2-smart-table
    (createConfirm)="addData($event)"
    (deleteConfirm)="deleteData($event)"
    [settings]="settings"
    [source]="manu"
    >
    </ng2-smart-table>
`
})
export class ManufactureComponent implements OnInit {
    manu: Manufacture[] = [];

    constructor(private service: ManufactureService) {}

    ngOnInit() {
        alert(this.service.show());

        this.service.getManufacture().subscribe(arr => {
        let manu_list = arr.payload.get('manufact');
        if (manu_list) {
            this.manu = manu_list;
        }
        });
    }

    settings = {
        add: {
        addButtonContent: '<i class="nb-plus"></i>',
        createButtonContent: '<i class="nb-checkmark"></i>',
        cancelButtonContent: '<i class="nb-close"></i>',
        confirmCreate: true
        },
        edit: {
        editButtonContent: '<i class="nb-edit"></i>',
        saveButtonContent: '<i class="nb-checkmark"></i>',
        cancelButtonContent: '<i class="nb-close"></i>'
        },
        delete: {
        deleteButtonContent: '<i class="nb-trash"></i>',
        confirmDelete: true
        },
        columns: {
        shopname: {
            title: 'Shop Name'
        },
        ownername: {
            title: 'Owner Name'
        },
        nic: {
            title: 'NIC'
        },
        contactno: {
            title: 'ContactNo'
        },
        address: {
            title: 'Address'
        },
        email: {
            title: 'Email'
        }
        }
    };

    addData(data) {
        this.manu.push(data.newData);
        console.log(this.manu);
        this.service.addManufacture({ manufact: this.manu }).subscribe(next => {
        data.confirm.reject();
        });
    }

    deleteData(data) {
        this.service.deleteManufacture();
    }
}

我可以删除整个文档,但我只想删除特定的单行。

最佳答案

deleteSpecificRow(event) {
    this.service.deleteTheRow(event.data.id);
}

我认为您已经实现了一个使用 id 删除单行的服务(deleteTheRow),我希望这会有所帮助!

deleteTheRow() 函数:

deleteTheRow(id) {return
   this.firestore
   .collection("yourCollection")
   .manu(id)
   .delete();}

-我想你应该看看这个: https://itnext.io/how-to-crud-in-angular-firebase-firestore-456353d7c62

关于angular - 如何删除 ng2-smart-table 中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55744213/

相关文章:

android - Ionic 2 on function 无法正确刷新 ngModel

angular - ngrx select 字符串是什么类型?

java - 在没有spring boot的情况下使用spring mvc项目配置angular 2

angular - aws-sdk:从 Angular 5 更新到 Angular 6 后崩溃

javascript - ng2-smart-table 将 'Add New' 按钮事件绑定(bind)到外部按钮

javascript - 如何在 Ionic 2 中实现 jQuery 列表过滤器

angular - ng2-smart-table 缺少依赖项完成程序

angular - 如何过滤ng2智能表中valuePreparefunction返回的自定义数据

typescript - 使用 AngularFire 和 Firestore 使用 Ng2 智能表显示嵌套对象

angular - ng2-smart-table 在编辑单击时打开弹出窗口