angular inputNumber指令输入框只能输入数字的实现

 更新时间:2019年12月03日 09:06:34   作者:lizehua  
这篇文章主要介绍了angular inputNumber指令输入框只能输入数字的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、建立一个独立模块用于作为公用指令的模块

1)生成模块

ng g m directive

2)进入指令模块目录

cd directive

3)生成一个只能输入数字的指令类

ng g d numberinput

4)指令模块directive.module.ts代码如下

import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NumberinputDirective } from './numberinput.directive';
@NgModule({
 imports: [
  CommonModule
 ],
 declarations: [NumberinputDirective],
 exports:[ // 使引用该模块的类可以使用该指令
  NumberinputDirective
 ]
})
export class DirectiveModule { }

5)指令类numberinput.directive.ts代码如下

@Directive({
 selector: 'input[numberInput]'
})
export class NumberInputDirective {
 // tslint:disable-next-line: no-input-rename
 @Input('numberInput') numberType: string;
 constructor(private el: ElementRef) {}

 @HostListener('input', ['$event.target.value'])
 onChange(value: string): void {
  if (this.numberType.length < 1) {
   this.updateIntegerValue(value);
  } else {
   this.el.nativeElement.value = value.replace(/[^\d.]/g, '');
  }
 }
 @HostListener('blur', ['$event.target.value']) onBlur(value: number): void {
  if (this.numberType.length >= 1) {
   this.updateFloatValue(value);
  }
 }
 updateIntegerValue(value: string): void {
  this.el.nativeElement.value = value.replace(/[^\d]/g, '');
 }
 updateFloatValue(floatValue: number): void {
  const value = String(floatValue);
  const reg = /^-?(0|[1-9][0-9]*)(\.[0-9]*)?$/.test(value);
  const numBegin = /^\d/.test(value);
  const numEnd = /\d$/.test(value);
  if (reg && numBegin && numEnd) {
   this.el.nativeElement.value = value;
  } else {
   this.el.nativeElement.value = 0;
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解AngularJS ui-sref的简单使用

    详解AngularJS ui-sref的简单使用

    本篇文章主要介绍了详解AngularJS ui-sref的简单使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 浅谈Angular4中常用管道

    浅谈Angular4中常用管道

    本篇文章主要介绍了Angular4中常用管道,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • AngularJS中下拉框的基本用法示例

    AngularJS中下拉框的基本用法示例

    这篇文章主要介绍了AngularJS中下拉框的基本用法,结合具体实例形式分析了AngularJS下拉框的元素绑定、选中及显示等功能实现方法,需要的朋友可以参考下
    2017-10-10
  • Angular.js中数组操作的方法教程

    Angular.js中数组操作的方法教程

    AngularJS是google在维护,其在国外已经十分火热,可是国内的使用情况却有不小的差距,参考文献/网络文章也很匮乏。下面这篇文章主要给大家介绍了关于Angular.js中数组操作的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • angular.js + require.js构建模块化单页面应用的方法步骤

    angular.js + require.js构建模块化单页面应用的方法步骤

    这篇文章主要给大家介绍了关于利用angular.js + require.js构建模块化单页面应用的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • angularjs项目的页面跳转如何实现(5种方法)

    angularjs项目的页面跳转如何实现(5种方法)

    本篇文章主要介绍了详解angularjs项目的页面跳转如何实现 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 浅谈angularjs $http提交数据探索

    浅谈angularjs $http提交数据探索

    这篇文章主要介绍了浅谈angularjs $http提交数据探索,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • angularJs select绑定的model取不到值的解决方法

    angularJs select绑定的model取不到值的解决方法

    今天小编就为大家分享一篇angularJs select绑定的model取不到值的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 详解在 Angular 项目中添加 clean-blog 模板

    详解在 Angular 项目中添加 clean-blog 模板

    本篇文章主要介绍了详解在 Angular 项目中添加 clean-blog 模板,非常具有实用价值,需要的朋友可以参考下
    2017-07-07
  • AngularJS中table表格基本操作示例

    AngularJS中table表格基本操作示例

    这篇文章主要介绍了AngularJS中table表格基本操作,涉及AngularJS针对table表格元素与属性的相关动态操作技巧,需要的朋友可以参考下
    2017-10-10

最新评论