javascript - AngularJS:我应该使用过滤器将整数值转换为百分比吗?

标签 javascript angularjs angularjs-filter

我需要从我的应用程序用户那里收集变化率(以百分比表示)。这是我正在使用的文本输入:

<label for="annual-change" class="pt-underline"> I am anticipating
<input id="annual-change" ng-model="calc.yrChange"  type="text" placeholder="0" /> % of growth annually.<br><br>
</label>

现在我想要的是使用一个过滤器,它接受用户输入的整数并将其乘以 0.01 或除以 100 将其转换为百分比> 在我将它发送给 Controller 进行计算之前

但我就是想不出过滤器的放置位置以及如何连接它。所以我用这样的指令试了一下:

    app.directive("percent", function($filter){
    var p = function(viewValue){
      console.log(viewValue);
      var m = viewValue.match(/^(\d+)/);
      if (m !== null)
        return $filter('number')(parseFloat(viewValue)/100);
    };

    var f = function(modelValue){
        return $filter('number')(parseFloat(modelValue)*100);
    };

    return {
      require: 'ngModel',
      link: function(scope, ele, attr, ctrl){
          ctrl.$parsers.unshift(p);
          ctrl.$formatters.unshift(f);
      }
    };
});

这种方法可行,但我不应该为此任务使用过滤器吗?我该怎么做?

最佳答案

好吧,你只是用 ctrl.$parser 和 ctrl.$formatter 以绝对正确的方式做到了 你可以省略 $filter 东西,那里绝对不需要它。 Just check it out他们也不在那里使用过滤器。

关于javascript - AngularJS:我应该使用过滤器将整数值转换为百分比吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17344828/

相关文章:

javascript - 如何在Node.js中的服务器目录上方获取文件

javascript - 有条件地将查询字符串附加到 Angular href

javascript - 使用 ng-bind 会导致 Chrome 历史记录显示页面 URL 而不是实际标题

javascript - Angular limitTo 过滤器的第二个参数 "begin"似乎在 Angular 1.3 中不起作用

javascript - 搜索过滤器 AngularJS

javascript - 连续事件不适用于从上一个事件创建的元素

javascript - ReactDOM.findDOMNode 未按预期工作

javascript - 如果 slider 类处于事件/可见状态,则更改主体类

javascript - Googlebot 和 AngularJS 网站

javascript - AngularJS orderby 通过复选框过滤