如何在Angular 6中以人类可读的方式表示文件大小?

时间:2018-10-28 11:56:03

标签: html angular html5 typescript angular6

假设我的HTML *ngFor="let cell of dateFormat(row)">{{cell | filesize}}</td>dateFormat的外观是这样的

dateFormat(row:string){

    var today = new Date(row[4]);

    let latest_date = this.datepipe.transform(today, 'yyyy-MM-dd');

    row['4'] = latest_date;

    return row;

}

HTML:

<tr *ngFor="let row of this.UploaderService.tableData2.dataRows">
    <td [ngClass]="{'active': check(row) }" (click)="listClick($event, row)"
       (dblclick)="listDoubleClick($event, row)"
       *ngFor="let cell of dateFormat(row)">{{cell}}
    </td>
</tr>

有什么方法只能在row['2']上呼叫filesize吗?目前filesize可以正常工作,但是它格式化所有行。我在dateFormat中尝试过,但是不确定在打字稿中如何使用filesize。像这样

let latest_date = this.datepipe.transform(today, 'yyyy-MM-dd');

row['4'] = latest_date;
row['2'] = here convert row['2'] using filesize;

return row;

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我没有您所有的代码,因此我创建的示例仅包含伪数据,

因此您可以执行以下操作:

*ngFor="let cell of dataRows">{{(row == 2)? (row | filesize): row }}

有关演示,请参阅this stackblitz

在这种情况下,filesize仅在row == 2

时适用

答案 1 :(得分:0)

npm install ngx-filesize

在您的模块中:

import {NgxFilesizeModule} from 'ngx-filesize';



// ...

@NgModule({
    // ...
    imports: [
        // ...
        NgxFilesizeModule,
        // ...
    ]
    // ...
})

在您的组件中

{{bytes | filesize}}

**我知道此解决方案的回复较晚,但它可能对即将到来的开发人员有所帮助:)