Javascript 使用angular2中的另一个指令添加指令

Javascript 使用angular2中的另一个指令添加指令,javascript,angular,angular2-forms,angular2-directives,Javascript,Angular,Angular2 Forms,Angular2 Directives,我的问题是,我想创建一个名为date input的指令,它可以应用于html输入字段 在这个自定义日期输入中,我想将来自其他模块的其他指令添加到相同的输入中。例如,我正在使用这里找到的textMask 我不想在我的应用程序中应用自定义掩码,而是想添加我自己的指令,将其应用于我的所有输入,如果需要更改某些内容,我只需要更改我的1指令,而不是我实现此代码的所有位置 使用textMask,我目前必须对数字字段执行所有这些操作,更不用说在设置我的ngModel时取消对值的屏蔽了。我不想把这段代码复制到我

我的问题是,我想创建一个名为date input的指令,它可以应用于html输入字段

在这个自定义日期输入中,我想将来自其他模块的其他指令添加到相同的输入中。例如,我正在使用这里找到的textMask

我不想在我的应用程序中应用自定义掩码,而是想添加我自己的指令,将其应用于我的所有输入,如果需要更改某些内容,我只需要更改我的1指令,而不是我实现此代码的所有位置

使用textMask,我目前必须对数字字段执行所有这些操作,更不用说在设置我的ngModel时取消对值的屏蔽了。我不想把这段代码复制到我整个站点的所有组件上,这些组件认为一个简单的指令会很好

HTML

<input type="text" class="form-control" 
       [(ngModel)]="inputValue" [textMask]="{mask: mask, guide: false}" />
我想创建一个名为“number input”的简单指令,在运行时将[textMask]=“{mask:mask,guide:false}”添加到输入中

这能做到吗

import { Component, Input, OnChanges } from '@angular/core';

import createNumberMask from 'text-mask-addons/dist/createNumberMask.js';

export class NumberComponent {
    mask = createNumberMask({
                    prefix: '',
                    suffix: '',
                    decimalLimit: 0
                });
    inputValue: string = '';

    unmask(val) {
        let value = val.replace(/\D+/g, '');

        if (value == '') {
            return null;
        } else {
            return +value;
        }
    }
}