did*_*i3r 9 javascript typescript angular2-pipe angular
我正在学习Angular2,我想格式化一个加上一千个逗号分隔符的数字.据我所知,这可以使用Pipes完成,问题是我想在js文件中以编程方式格式化数字,而不是在html中(像var | number一样).
首先,我意识到没有可以使用的NumberPipe独立管道(如果我错了,请纠正我)最相似的是@ angular2/common中的CurrencyPipe.所以我有这样的事情:
import { Component } from '@angular/core';
import { CurrencyPipe } from '@angular/common';
@Component({
templateUrl: 'test.component.html',
styleUrls: ['./test.component.scss']
})
export class TestComponent {
public myNumber = 1000;
constructor(private currencyPipe: CurrencyPipe) {
var formatted = this.currencyPipe().transform(this.myNumber, 'MXN', true); // Is this correct?
}
}
Run Code Online (Sandbox Code Playgroud)
但它会引发以下错误: 未处理的Promise拒绝:没有提供CurrencyPipe!; 区域:棱角分明; ......
我究竟做错了什么?
提前致谢.
问候
Dan*_*cal 13
第一件事:您需要声明管道 - 将其添加到NgModule declarations部分:
declarations: [CurrencyPipe]
Run Code Online (Sandbox Code Playgroud)
第二件事:管道不是可注射的,所以你不能通过使用Angular依赖注入系统来获取它的实例.您需要手动创建此管道的新实例,例如:
var formatted = (new CurrencyPipe()).transform(this.myNumber, 'MXN', true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8498 次 |
| 最近记录: |