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

Javascript AngularJS:我应该使用过滤器将整数值转换成百分比吗?,javascript,angularjs,angularjs-filter,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 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>

这种方法很有效,但我不应该使用过滤器来完成这项任务吗?我该怎么做?

我认为您应该使用指令。如果您认为您将退回到使用JQuery来开始操作DOM元素,那么您可能需要一个指令

这是一个过滤器示例:


您可以做的是过滤作为监视事件一部分输入的值。不过,这取决于您的特定用例。

好吧,您只是用ctrl.$parser和ctrl.$formatter以绝对正确的方式完成了它 你只需要省去$filter这个东西,那里根本不需要它。
他们也不使用过滤器。

过滤器用于将一个数组的内容映射到另一个数组。我认为你应该在控制器中进行转换。是什么阻止你使用controller.hmm-我以为过滤器是用于过滤值的,所以我认为过滤器中应该有格式化、转换等功能。没有字段需要进行此转换,我认为逻辑会在controllerOne中重复更多内容过滤器不更新模型数据,他们只是转变。指令是一条正确的道路。让我想想itI love指令,但在这种情况下,我认为过滤器是更好的选择。它使(国际海事组织)对于一个可读性更强的模板,应该使用asPercent而不是指令。欣赏这个示例,但我想我不明白的是,过滤器只表示数据-它们不更新模型数据-所以我想我想要的是这样的东西-在这种情况下,我的代码示例仍然有效-它可以工作-这是一个有效的示例普朗克:事实上,我真的很惊讶,你到目前为止对指令、所需的ngmodel指令、格式化程序和所有这些都做了正确的事情,突然有了这个过滤器blooper:)好吧,所以我实际上发现了这个代码片段,它似乎对我来说还是很神秘的。我本以为过滤器会转换模型数据,并将其从视图传递到控制器,但事实并非如此。
    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);
      }
    };
});