相关疑难解决方法(0)

输入掩码

是否可以在Angular 2中使用模型驱动的表单并实现一个允许屏蔽input像电话号码条目这样的字段的指令(123) 123-4567

forms input angular

52
推荐指数
5
解决办法
9万
查看次数

使用ngModel更改字段值的属性指令

我想在使用属性Directive键入时更改(强制)输入字段值.有了它,我想创建一些指令,如大写,小写,maxlength,filterchar等,用于表单上的输入字段.我找到了这个例子:Angular 2 Attribute Directive Typescript Example但这似乎不起作用.也许它是为早期构建的Angular2做的.然而,这正是我想要做的.

当我创建这样的指令时:

import {Directive} from 'angular2/core';
import {NgModel} from 'angular2/common';

@Directive({ 
selector: '[ngModel][uppercase]', 
host: {
    '(input)' : 'onInputChange()'
      }
})
export class UppercaseDirective{

constructor(public model:NgModel){}

onInputChange(){
    var newValue = this.model.value.toUpperCase();
    this.model.valueAccessor.writeValue(newValue);
    this.model.viewToModelUpdate(newValue);
    }
}
Run Code Online (Sandbox Code Playgroud)

并在这样的表单上使用它:

<input type="text" class="form-control" [(ngModel)]="field.name" ngControl="name" #name="ngForm" required uppercase>
Run Code Online (Sandbox Code Playgroud)

(并注册NgModel为提供者).我得到了

undefined this.model.value.

我可以使用$event.target.value = $event.target.value.toUpperCase()(当传递$eventonInputChange())并且适用于视图(它确实将输入显示为大写.但它不会更新绑定字段"field.name".

那么如何创建一个Angular2属性指令呢?

- 编辑 -

经过一番进一步调查后,我设法得到了我想要的东西.Günter提供的答案更接近我的初衷,也许更好.但这是另一种方式:

import {Directive, Input, Output, EventEmitter} from 'angular2/core';

@Directive({ 
selector: '[ngModel][uppercase]',
host: …
Run Code Online (Sandbox Code Playgroud)

directive angular2-ngmodel angular

18
推荐指数
2
解决办法
3万
查看次数

带有验证的角度2,4,5+输入掩码

如何在Angular模板驱动的方法中验证和显示验证消息?

validation input-mask angular

1
推荐指数
1
解决办法
8860
查看次数