相关疑难解决方法(0)

Angular - 在服务和组件中使用管道

在AngularJS中,我能够使用类似于此的语法在服务和控制器内部使用过滤器(管道):

$filter('date')(myDate, 'yyyy-MM-dd');
Run Code Online (Sandbox Code Playgroud)

是否可以在Angular中使用像这样的服务/组件中的管道?

angular

306
推荐指数
8
解决办法
21万
查看次数

FormControl输入中的Angular 2日期管道

我有一个动态生成的Angular 2 FormGroup,其中包含多个FormControl输入字段.一些输入是日期,它们作为unix时间戳从服务器获取.

我想做的是:

  1. 当我的FormGroup被填充时,能够将unix时间戳转换为人类可读的形式
  2. 在提交表单时将日期的人工表示转换为unix时间戳.

第1部分有点简单,使用Angular的日期管道,如下所示:

<input class="form-control" [formControlName]="question.key"
[value]="this.form.controls[this.question.key].value | date:'dd/MM/yyyy'">
Run Code Online (Sandbox Code Playgroud)

其中this.form是对FormGroup的引用,this.question是一个基于动态表单的官方教程的自定义包装类:

https://angular.io/docs/ts/latest/cookbook/dynamic-form.html

尝试以这种方式更改日期输入将不起作用,因为管道将不断尝试转换输入值,从而使输入不可用,如果不为管道'DatePipe'异常抛出Invalid参数.

为了澄清,我使用FormGroup.patchValue()api 填写表单,并使用api提交表单数据FormGroup.getRawValue().

我曾尝试使用Angular 2日期选择器组件,但它们使我的巨大形式非常慢,所以我想在没有自定义日期选择器或任何jQuery依赖小部件的情况下这样做.

提前致谢.

forms pipe datepicker angular

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

angular ×2

datepicker ×1

forms ×1

pipe ×1