angular - renderer2 ile giriş alanına odaklanma ayarlama
Aşağıdaki gibi bir butonum var, 'space' tuşuna bastığımda bir modal açıyor
<button type="button" (keydown.space)="openLg()" class="btn btn-link"></button>
ve aşağıdaki gibi bir giriş alanına odaklanmak istiyorum
<input class="form-control" type="text" id="amount" name="amount" [(ngModel)]="totalAmt_modal">
openLg fonksiyonu
openLg() {
this.renderer.selectRootElement('#amount').focus();
}
Aynı zamanda renderer2'yi de ithal ettim
import { Component, OnInit, Renderer2} from '@angular/core';
constructor(private renderer: Renderer2){}
ama boşluk tuşuna bastığımda bana aşağıdaki hatayı gösteriyor
core.js:4352 ERROR Error: The selector "#amount" did not match any elements
at EmulatedEncapsulationDomRenderer2.selectRootElement (platform-browser.js:679)
at BaseAnimationRenderer.selectRootElement (animations.js:267)
at VoucherentryComponent.setfocus (voucherentry.component.ts:347)
at VoucherentryComponent.openLg (voucherentry.component.ts:320)
at VoucherentryComponent_tr_52_Template_button_keydown_space_2_listener (voucherentry.component.html:75)
at executeListenerWithErrorHandling (core.js:15214)
at wrapListenerIn_markDirtyAndPreventDefault (core.js:15249)
at platform-browser.js:582
at platform-browser.js:1281
at ZoneDelegate.invoke (zone-evergreen.js:364)
Çözüm nedir? Neyde yanlış yapıyorum?
Cevap #1
Sorun modaldeydi. Nedense modal girdi üzerine odaklanmıyordu. NgbAutofocus kullandım.