1

我有一个 ng-change,它根据输入到另一个输入中的文本更新文本输入 - https://stackoverflow.com/questions/22256174/angularjs-want-to-show-1-x-in-a-text-输入-当-用户-设置-a-value-0

但是,使用 ng-change 设置的值只能以 0.01 的步长显示。即,两位小数。但是由于 Chrome 没有为显示“修复”浮点舍入错误,有时文本输入会显示 0.19999999996 之类的值。

我在想 AngularJS 数字过滤器可能有用,但在 ng-change 中添加它对我不起作用 -

ng-change="v1 = 1 - v2 | number:2"

有没有可能让它工作?...或者还有其他解决方法吗?

4

1 回答 1

3

您可以$filter在控制器中使用该服务:

$filter('number')(number, fractionSize)

例如:

app.controller('MyCtrl', ['$scope', '$filter',
  function MyCtrl($scope, $filter) {

    $scope.change = function() {
      $scope.v1 = $filter('number')(1 - $scope.v2, 2);
    };
  }
]);

和:

<body ng-controller="MyCtrl">
  <input ng-model="v2" ng-change="change()" />
  <input ng-model="v1" />
</body>

演示: http ://plnkr.co/edit/lUVyAL8nuCPKM66I7J0W?p=preview

更新的演示: http ://plnkr.co/edit/f8UZQY3d4YF4LFd3FvoF?p=preview

于 2014-03-08T19:05:06.837 回答