【问题标题】:Can I autodect a value in an angular directive instead of using a template reference variable?我可以自动检测角度指令中的值而不是使用模板引用变量吗?
【发布时间】:2018-05-23 23:14:18
【问题描述】:

我得到了什么

我有一个类似这样的指令:

@Directive({
    selector: '[appValidateOnSubmit]'
})
export class ValidateOnSubmitDirective {

    @Input('appValidateOnSubmit')
    set appValidateOnSubmit(form: NgForm) {
        // do something with the form
    }
}

用法:

<form (ngSubmit)="submit()" [appValidateOnSubmit]="myForm" #myForm="ngForm">
    <!-- ... -->
</form>

到目前为止,这一切都很好。

问题

我能否以某种方式从 HTML 中删除模板引用变量 myForm?这样我就可以简单地写&lt;form (ngSubmit)="submit()" appValidateOnSubmit&gt; 而不是更长的&lt;form (ngSubmit)="submit()"[appValidateOnSubmit]="myForm" #myForm="ngForm"&gt;

背景是我的answer here,我正在努力改进。

【问题讨论】:

    标签: angular angular4-forms


    【解决方案1】:

    是的,有一种方法可以通过 @Host 做到这一点

    @Directive({
      selector: '[appValidateOnSubmit]'
    })
    export class ValidateOnSubmitDirective {
    
      constructor(@Host() form: NgForm) {
        console.log(form);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 2017-11-02
      相关资源
      最近更新 更多