javascript - 如何创建自定义指令来监听输入更改

标签 javascript html angularjs

嗨,我在这里编写了一个自定义指令。每次值更改时都需要调用该指令。这是我的指令。我如何调用 ng-change.here 是我的指令。

app.directive('percentageFormatter', function() {
      return {
        require: 'ngModel',
        link: function(scope, element, attrs, ngModelController) {
          ngModelController.$parsers.push(function(data) {
            //convert data from view format to model format
            return data.replace('%','');
          });

          ngModelController.$formatters.push(function(data) {
            //convert data from model format to view format
            return data+'%';
          });
        }
      }
    });

JSP:-

<input type="text"  percentage-formatter ng-model="tea">

这里如何在 ng-change 中调用该指令。

最佳答案

$scope.watch 函数监视值的变化。将其添加到您的指令中

 $scope.$watch(function () {
  // do soething 
});

或者您也可以使用以下一种方法。

   element.bind('keypress', function(event) {
      if(event.keyCode === 32) {
        event.preventDefault();
      }
    });

这就是我创建百分比格式化程序的方式

angular.module('test')
  .directive('percentageFormatter', function() {
    return {
      require: '?ngModel',
      link: function(scope, element, attrs, ngModelCtrl) {
        if(!ngModelCtrl) {
          return;
        }

        ngModelCtrl.$parsers.push(function(val) {
          if (angular.isUndefined(val)) {
            val = '';
          }
          var clean = val.replace("%", '');
          if (val !== clean) {
            ngModelCtrl.$setViewValue(clean);
            ngModelCtrl.$render();
          }
          return clean;
        });

        element.bind('keypress', function(event) {
          if(event.keyCode === 32) {
            event.preventDefault();
          }
        });
      }
    };
  });

关于javascript - 如何创建自定义指令来监听输入更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42763138/

相关文章:

javascript - 如何从 Canvas 中的递归 lineTo 调用创建动画?

c# - XPath 选择内文

javascript - 我按下键盘上的 ENTER 键并刷新页面。如何防止这种情况并仍然使用键盘进行搜索?

angularjs - $http post 请求未添加指定的 header

javascript - 使用ajax加载特定的div内容

javascript - Javascript 中不明确的函数声明

javascript - 在 Ionic Framework (Phonegap) 中的 View 之间存储变量的正确方法

javascript - Cordova Windows Phone 8.1 : error with bootstrap modal

javascript - 无法将新用户保留到 Firebase 数据库

javascript - Angular Directive(指令) : return object from collection