我正在尝试在angularJS中创建简单的自定义指令
验证用户是否输入整数。

如果用户输入整数,则错误消息应出现在
指出“不允许使用集成人”。

知道我该如何实现...?
(小提琴太棒了)

并且...

这可以不用$ scope。$ watch来做吗?

这是检查客户端输入的专业有效方法吗?
验证? (这种方法是否会损害应用程序的性能)?

最佳答案

您可以使用ng-pattern验证其是否为有效数字。另一种方法是根据您的要求,创建一个自定义指令。我要使用notNumber名称,也可以稍加更改即可使用isNumber

angular.module('app')
  .directive('notNumber', notNumber);

function notNumber() {
  return {
    require: 'ngModel',
    link: function(scope, elem, attr, ctrl) {
      ctrl.$formatters.unshift(function(value) {
        if (value) {
          ctrl.$setValidity('notNumber', Number.isNaN(value));
        }
        return value;
      });
    }
  };
}


在HTML中,

<input type="text" ng-model="model" not-number />

09-11 20:44