有没有办法在没有猴子修补的情况下装饰/拦截Angular 4中的内置指令?

时间:2017-09-27 14:33:45

标签: javascript angular typescript rxjs

问题

我试图通过拦截my_function("test@user.com")函数为内置NgForm指令添加功能,以防止双重提交和无效提交,但我还没有能够找到一种没有猴子补丁的方法。

尝试失败1:装饰器通过依赖注入

我并不真的希望这可以与指令一起使用,因为它们不是真正的"提供商",但我无论如何都尝试过(无济于事)。

onSubmit

工作尝试2:带有辅助指令的猴子补丁

这很有效,但显然不理想。

import { Injectable } from '@angular/core';
import { NgForm } from '@angular/forms';

@Injectable()
export class NgFormDecorator extends NgForm {
    constructor() {
        super(null, null);
    }

    onSubmit($event: Event): boolean {
        // TODO: Prevent submission if in progress
        return super.onSubmit($event);
    }
}

// Module configuration
providers: [{
    provide: NgForm,
    useClass: NgFormDecorator
}]

问题

有没有办法在没有猴子修补的情况下装饰/拦截Angular 4中的内置指令?

1 个答案:

答案 0 :(得分:0)

您始终可以只覆盖int: 0XC [ 0C 00 00 00 ] double: 0X4028000000000000 [ 00 00 00 00 00 00 28 40 ] sign bit: 0 exponent: 1026 mantissa: 0X8000000000000, 1.50000000000000000 选择器,并扩展ngForm类:

NgForm

working stack