如何在angular2 / ionic 2打字本应用程序中使用Numeral.js库?

时间:2017-06-12 07:12:12

标签: angular ionic2 angular-pipe numeral.js

我在angularJs(1.x)应用程序中使用Numeral.js库成功地以不同格式格式化我的数字。这是我使用angular1过滤器的方式:

filter.js

.filter('numeral', function () {
  return function (count) {
    var numericalFormat = numeral(count).format('0.0a');
    return numericalFormat;
  };
})

为此,我跟随官方docs of Numeral.js 并使用npm安装。我还引用了index.html中的nodemodules。

在浏览器中

<script src="node_modules/numeral/numeral.min.js"></script>

但它显示

  

ERROR ReferenceError:未定义数字       在NumeralFilter.transform

最初我尝试使用CDN引用,它按照我在浏览器中的预期工作。但是当我在真实设备上安装应用程序时,我收到错误“数字未定义”。

import {Pipe,PipeTransform,Injectable} from "@angular/core"
@Pipe({
name:'numeralPipe'
})
@Injectable()
export class NumeralPipe implements PipeTransform{
    transform(count:any):any{ //eg: in count has value something like 52456.0
       var numericalFormat = numeral(count).format('0.0a');//error here
    return numericalFormat; // i have to format it like 52,5k
  }; 
} 

是否存在用于格式化和操作数字的任何类型的脚本库,或者在angular2中是否有任何方法可以执行此操作?

2 个答案:

答案 0 :(得分:4)

使用

将包添加到Node Modules文件夹
yarn add numeral

npm install numeral

然后导入到Typescript文件

import * as numeral from 'numeral';

答案 1 :(得分:2)

添加

declare var numeral:any

之后

import {Pipe,PipeTransform,Injectable} from "@angular/core".