【问题标题】:Deleting checked row(s) from a table in Angular从Angular中的表中删除选中的行
【发布时间】:2017-12-03 13:57:24
【问题描述】:

我有这张桌子

<p-dataTable [value]="example">
    <p-column [style]="{'width':'38px'}" selectionMode="multiple"></p-column>
    <p-column field="a" header="column 1"></p-column>
    <p-column field="b" header="column 2"></p-column>
    <p-column field="c" header="column 3"></p-column>
</p-dataTable>

我现在想创建一个删除按钮,该按钮应该从表中删除选中的行。

<button pButton type="button" label="Delete" (click)="onclick()"></button>

然后我将如何继续,我知道我必须在 component.ts 中创建一个函数

onclick() 

我的表也被创建为

example = [];

ngOnInit() {
    this.example.push({
        a: 'e1',
        b: 'e2',
        c: 'e3'
    });
};

但是如何在其中删除已检查的行。

谢谢

【问题讨论】:

    标签: html json angular datatable primeng


    【解决方案1】:

    首先改变example数组的结构,准备一个selection数组

    example = [
        {field: 'a', header: 'e1'},
        {field: 'b', header: 'e2'},
        {field: 'c', header: 'e3'},
    ];
    
    selectedItems = [];
    


    然后生成像这样的表和列(DRY)

    <p-dataTable [value]="example" selectionMode="multiple" [(selection)]="selectedItems">
        <p-column *ngFor="let item of example" [field]="item.field" [header]="item.header"></p-column>        
    </p-dataTable>
    
    <button (click)="deleteSelected()">Delete the bastards!</button>
    


    然后让我们让它们消失:

    deleteSelected(){
        selectedItems.forEach(function(item) {
            const index = example.indexOf(item);
    
            example.splice(index, 1);
        });
    }
    

    应该这样做。

    【讨论】:

    • 谢谢,但是如果不像你在我的代码中那样制作选择数组,我可以用 .push 东西制作数组,因为我想要多行并且不想继续创建新数组创建更多行。
    • 请问你从哪里得到数组项?如果您知道起始项 (e1, e2, e3),您应该像我在 example 数组的定义中所做的那样制作它们。然后,您可以随时使用 push 添加到该数组。您绝对需要 selection 数组,因为您需要跟踪要删除的数组。
    • 在不使用 ngfor(在 html 部分)中创建表,我只是多次使用 pcolumn。那么我将如何获得数组的总索引/大小?我遇到的另一个问题是 void 类型不存在属性示例,这意味着什么。仍然感谢您的帮助。
    • Np,很高兴我能帮助你。好的,这是很多问题,我需要在 oreder 中构建实际的表格来帮助你。但是,请不要被冒犯,从你的问题中我觉得你对打字稿/角度有点陌生。我强烈建议在这个阶段避免使用primeng,并专注于通过课程学习vanila Angular4。否则你会养成很多坏习惯。
    • 嘿,我修好了,只是用普通的 for 循环,是的,我对 angular 和 typescript 很陌生(几天)。
    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 2016-10-02
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多