Tôi muốn đặt tiêu điểm thành phần tử biểu mẫu. Với jQuery, điều này thật dễ dàng, chỉ cần $('selector').focus
.Tập trung vào một phần tử trong Aurelia
tôi đã tạo ra một đơn giản <input ref="xxx" id="xxx" type="text">
và nộp .ts tôi thêm một tài sản và sử dụng nó ở đây:
attached() {
this.xxx.focus()
}
Không có gì xảy ra. Bắt đầu cảm thấy rằng một số điều dễ dàng đang trở nên khó khăn, điều mà tôi chắc chắn không bao giờ là vấn đề.
(trường hợp sử dụng ban đầu là để đặt trọng tâm vào một yếu tố hình thức bên trong một sự sụp đổ Bootstrap, khi sự sụp đổ được hiển thị, như thế này:
// set focus to the first element when the add-cell collapse is shown
$('#collapsedAddTask').on('shown.bs.collapse', function() {
$('#AddTaskTitle').focus()
})
đó làm việc cho HTML cơ bản của tôi (ứng dụng trang không đơn) , nhưng không phải với Aurelia. cách Aurelia?
cập nhật Sử dụng câu trả lời từ Miroslav Popovic dưới đây là gì, và trong các ý kiến, tôi đã nhận nó làm việc như vậy (hãy nhớ, đây là một thành phần sụp đổ Bootstrap):
<!-- the heading with an A that toggles visibility -->
<div class="panel-heading">
<a href="#collapsedAddTask" data-toggle="collapse" id="addTaskHeader" click.delegate="addTaskShown()">Add task</a>
</div>
<!-- the body, which is initially hidden -->
<div class="panel-body">
<div class="collapse" id="collapsedAddCell">
<input type="text" focus.bind="addTaskFocused">
<!-- more controls ... -->
</div>
</div>
Và làm thế nào bạn sẽ lắng nghe sự kiện sụp đổ? Nhập $ và sử dụng '$ ('# collapsedAddTask') trên ('shown.bs.collapse', function() {....})' hoặc có cách Aurelia không? – specimen
Sử dụng jQuery là một tùy chọn.Tôi không nghĩ rằng bạn có thể liên kết trình kích hoạt cho sự kiện đó trong chế độ xem ('
), vì nó không phải là sự kiện DOM thông thường ... Thông thường, bạn sẽ muốn đóng gói tất cả các logic liên quan đến DOM, sử dụng jQuery hoặc DOM đơn giản , thành phần tùy chỉnh hoặc thuộc tính tùy chỉnh. I E. trong trường hợp này, bạn có thể sử dụng phần tử tùy chỉnh và có thứ gì đó như 'Một ý tưởng khác ... Bạn có thể tạo thuộc tính tùy chỉnh 'focus-child' sẽ xử lý sự kiện 'shown.bs.collapse' này và đặt trọng tâm thành phần tử đầu vào đầu tiên hoặc phần tử có giá trị ID đã cho. Với điều đó, bạn chỉ có thể thêm thuộc tính đó để thu gọn div - '
'. Thông tin thêm về thuộc tính tùy chỉnh trong tài liệu - http://aurelia.io/docs#/aurelia/framework/1.0.0-beta.1.1.4/doc/article/cheat-sheet/8 –