11

アプリケーションのユーザーから変化率 (パーセンテージ) を収集する必要があります。私が使用しているテキスト入力は次のとおりです。

<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);
      }
    };
});

この種の作品ですが、このタスクにフィルターを使用するべきではありませんか? どうすればいいですか?

4

2 に答える 2