Bạn có thể sử dụng trình trang trí @ViewChild
cho việc này. Tài liệu có tại https://angular.io/api/core/ViewChild.
Dưới đây là một plnkr làm việc: http://plnkr.co/edit/KvUmkuVBVbtL1AxFvU3F
ý chính này của mã đi xuống đến, đưa ra một tên cho yếu tố đầu vào của bạn và dây lên một sự kiện click trong mẫu của bạn.
<input #myInput />
<button (click)="focusInput()">Click</button>
Trong thành phần của bạn, thực hiện @ViewChild
hoặc @ViewChildren
để tìm kiếm các phần tử (s), sau đó thực hiện xử lý nhấp chuột để thực hiện chức năng bạn cần.
export class App implements AfterViewInit {
@ViewChild("myInput") inputEl: ElementRef;
focusInput() {
this.inputEl.nativeElement.focus()
}
Bây giờ, hãy nhấp vào nút và sau đó dấu nháy mắt sẽ xuất hiện bên trong trường nhập. Việc sử dụng ElementRef
không được khuyến nghị là rủi ro bảo mật, như các cuộc tấn công XSS (https://angular.io/api/core/ElementRef) và vì nó dẫn đến các thành phần ít cầm tay hơn.
Cũng hãy cẩn thận rằng, biến số inputEl
sẽ có sẵn lần đầu tiên khi xảy ra sự cố ngAfterViewInit
sự kiện.
Nguồn
2017-09-29 06:35:46
Tôi đã khắc phục một số lỗi chính tả/lỗi trong câu trả lời của bạn. – developer033
@ developer033 cảm ơn :) –
Cảm ơn bạn rất nhiều vì đã trả lời. Tôi đã thử nó nhưng không có thay đổi và không có lỗi DOM trên bàn điều khiển. Tôi đã quên nhập một cái gì đó trong tập tin 'ts'? – Dev