Angular 2管道或指令?哪个是最好的?

时间:2017-12-22 07:13:41

标签: angular angular2-directives angular2-pipe

我的应用中有几个日期字段。所以我需要将日期作为时间戳发送到数据库。所以我打算编写一个自定义管道来修改模型值。这符合我的需要吗?或者我需要为此编写自定义指令吗?

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({name: 'capitalize'})
export class CapitalizePipe implements PipeTransform {
  transform(value: string, args: string[]): any {
    if (!value) return value;

    return value.replace(/\w\S*/g, function(txt) {
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    });
  }
}

2 个答案:

答案 0 :(得分:2)

你让它落后了。在Angular中,管道在模板中用于以更合适的方式显示数据。它们无法修改您的实际数据。

我建议使用ng-bootstrap库(您可以在Github上找到它)来使用正确的日历小部件。可以将模型配置为返回时间戳。

编辑:添加在代码中调用它的示例:

let name = new UserNamePipe().transform(user);

https://stackoverflow.com/a/35159546/5885595

答案 1 :(得分:0)

希望我理解你的问题 对于转换,您可以使用标准DatePipe(或扩展它),例如:

{{ dateField | date:'HH:mm:ss SSS'}}
{{ dateField | date:'HHmmssSSS':'+0000'}}