我需要从我的应用程序的用户那里收取百分比的变化率.这是我使用的文本输入:
<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后将其转换为百分比,然后再将其发送给控制器进行计算
但是我不知道放置过滤器的位置以及如何钩住它.所以我试着用一个这样的指示:
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); } }; });
这种作品,但是不应该使用过滤器来完成这个任务?我该怎么做?