首页 > 代码库 > angular2 通过指令限制输入
angular2 通过指令限制输入
最近在写一个表单,有些输入框只能输入数字,单又不想每次写表单的时候,都要去验证输入的是不是数字,
那么就想到直接限制只能输入数字,通过指令实现
这里需要注意的是,不只更改DOM的值,如果input为数据绑定的值,需要更新绑定值,
所以需要引入NgModel,通过viewToModelUpdate,来更新绑定值
import { Directive } from ‘@angular/core‘;import { NgModel } from ‘@angular/forms‘;// 自定义指令@Directive({ selector: ‘input[number]‘, host: { ‘(keypress)‘: ‘onkeypress($event)‘, ‘(keyup)‘: ‘onkeyup($event)‘ }, inputs: [‘maxValue‘],})export class NumberInput { maxValue: number; constructor(public control: NgModel) { } onkeyup(event) { let input = event.target; if (input.value =http://www.mamicode.com/="") { input.value = 0; this.control.viewToModelUpdate(0); } let newValue = parseInt(input.value); if (newValue > this.maxValue) { input.value = this.maxValue; this.control.viewToModelUpdate(this.maxValue); } else { input.value = newValue; this.control.viewToModelUpdate(newValue); } } onkeypress(event) { // 判断是否为数字 let inputStr = String.fromCharCode(event.keyCode); if (!parseInt(inputStr)) { return false; } }}
angular2 通过指令限制输入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。