Val*_*sin 10 typescript angular
高达angular2.beta15(包括)以下代码工作正常:
@Pipe({
name: 'isoDate'
})
export class ISODatePipe extends DatePipe implements PipeTransform {
transform(isoDate: string, args: any[]): string {
return super.transform(new Date(isoDate), args);
}
}
Run Code Online (Sandbox Code Playgroud)
在RC1上它不再工作了,即使我调整了管道语法:
@Pipe({
name: 'isoDate'
})
export class ISODatePipe extends DatePipe implements PipeTransform {
transform(isoDate: string, pattern?: string): string {
const date = new Date(isoDate);
return super.transform(date, pattern);
}
}
Run Code Online (Sandbox Code Playgroud)
我在浏览器中看到的消息如下:The pipe 'isoDate' could not be found
.
如果我删除extends
部分并返回一些字符串 - 它再次起作用.
发生了什么变化?
PS
目前已将其更改为
@Pipe({ name: 'isoDate' })
export class ISODatePipe implements PipeTransform {
private datePipe: DatePipe = new DatePipe();
transform(isoDate: string, pattern?: string): string {
const date = new Date(isoDate);
return this.datePipe.transform(date, pattern);
}
}
Run Code Online (Sandbox Code Playgroud)
它有效,但看起来有点奇怪.
发生了什么变化?
显然 DatePipe 类现在有构造函数
constructor(@Inject(LOCALE_ID) private _locale: string) {}
所以你可以传递LOCALE_ID作为参数:
const datePipe = new DatePipe();
Run Code Online (Sandbox Code Playgroud)
当您编译时指定 local ngc --locale=en-US
LOCAL_ID 被传递给DatePipe
构造函数。
归档时间: |
|
查看次数: |
2094 次 |
最近记录: |