Angular - 是否有一种构建方式来循环对象并更新值?

时间:2015-11-06 06:50:15

标签: angularjs

我有一个对象,其中包含object.Value中的各种数字。我想循环并将object.Value更新为2 decimal个数字。这样做的正确和有角度的方式是什么?

这是我的数组:

$scope.calendar = [{"ContractMonths":[{"ContractDays":[{"Value":30},{"Value":25},{"Value":4}],"Value":8},{"ContractDays":[{"Value":5}],"Value":7},{"ContractDays":[{"Value":14}],"Value":5}],"Value":2015},{"ContractMonths":[{"ContractDays":[{"Value":15}],"Value":1}],"Value":2014},{"ContractMonths":[{"ContractDays":[{"Value":21}],"Value":3}],"Value":2012}]

我期待的结果是:

$scope.calendar = [{"ContractMonths":[{"ContractDays":[{"Value":30},{"Value":25},{"Value":04}],"Value":8},{"ContractDays":[{"Value":05}],"Value":07},{"ContractDays":[{"Value":14}],"Value":05}],"Value":2015},{"ContractMonths":[{"ContractDays":[{"Value":15}],"Value":01}],"Value":2014},{"ContractMonths":[{"ContractDays":[{"Value":21}],"Value":03}],"Value":2012}]

一些正当理由,我不想使用filters

任何人帮助我。 (这只是更新单个数字编号以添加0以使其成为2个小数)

1 个答案:

答案 0 :(得分:0)

JS不是stronly类型的语言支持Number类,如果它处理零小数,将任何数字视为整数。

如果它们是浮动,它们将获得这些小数,否则它们将不会。好吧,您可能会关注小数精度和内容,但我们知道现在情况并非如此。

来自格式化的公寓,如果它们是整数,那么使用像 lodash 这样的东西来循环你的对象和嵌套数组以对值做某事是没有意义的。

使用过滤器

第一个例子:

因此,假设您想以十进制格式显示Number value

{{value | number:2}}

因此,对于您的情况,我们假设您的模块名称为numbersApp,您将定义numbersFormatFilter自定义过滤器:

angular.module('numbersApp').filter('numbersFormatFilter', [function(){
  return function (number) {
    return String(number).match(/\d/g).length === 1 ? return "0" + number : String(number);
}]);

然后你可以使用HTML:

{{value | numbersFormatFilter}}