一個類似的問題已經存在,但不一樣。
我需要可能使用指令或其他什么的全域解決方案?
我有我的形式
<form (submit)="onSubmit()">
<input type="text">
<button type="submit>
</form>
我的用例不接受此解決方案:
submitted: false;
onSubmit(){
this.submitted = true;
}
并設定按鈕
[disabled]="submitted"
我需要全球解決方案...我開始但不知道下一步...
@Directive({ selector: 'form' })
export class PreventSubmitFewTimesDirective implements OnInit {
constructor(
private formSelector: ElementRef,
) {}
ngOnInit() {}
@HostListener('submit')
onSubmit(evt: KeyboardEvent) {
.... //
}
我針對提交的每個表單,但需要最佳解決方案。
uj5u.com熱心網友回復:
您可以執行以下操作:
// Targets every form with the 'disableAfterSubmit' directive, not every form (in case you want one or two forms not to have this behavior)
@Directive({ selector: 'form[disableAfterSubmit]' })
export class PreventSubmitFewTimesDirective {
constructor(private formSelector: ElementRef) {}
@HostListener('submit')
onSubmit(evt: KeyboardEvent) {
// Get the submit button with a query selector
const button = this.el.nativeElement.querySelector('button[type="submit"]');
// Disable it
button.disabled = true;
}
請注意,使用此解決方案,無法重新啟用提交按鈕。
uj5u.com熱心網友回復:
我不認為全域解決方案是最好的方法,但如果你真的必須這樣做,我會嘗試保存到 localstorage 然后從中讀取。但是我不會推薦它..
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322451.html
標籤:javascript 有角的 打字稿
