Chcę ustawić fokus na elemencie formularza. Z jQuery jest to takie proste, tylko $('selector').focus
.Skupienie elementu w Aurelia
Stworzyłem prostą <input ref="xxx" id="xxx" type="text">
i złożyć moje .ts I dodać obiekt i użyć go tutaj:
attached() {
this.xxx.focus()
}
Nic się nie dzieje. Zaczyna się czuć, że niektóre proste rzeczy stają się trudne, co na pewno nigdy nie miało sensu.
(przypadek oryginalne wykorzystanie było ustawić ostrość do elementu formularza wewnątrz upadku Bootstrap, gdy upadek jest pokazane, jak to:
// set focus to the first element when the add-cell collapse is shown
$('#collapsedAddTask').on('shown.bs.collapse', function() {
$('#AddTaskTitle').focus()
})
który działa dla mojego podstawowego HTML (nie pojedynczy app strona) , ale nie z Aurelia. Jaki jest sposób Aurelia?
Aktualizacja Używanie odpowiedź od Miroslav Popovic poniżej, w komentarzach, mam go do pracy jak tak (należy pamiętać, że jest to składnik upadek 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>
A jak byś nasłuchiwać zdarzenie collapse? Zaimportuj $ i użyj '$ ('# collapsedAddTask'). On ('shown.bs.collapse', function() {....})' lub czy istnieje sposób Aurelia? – specimen
Korzystanie z jQuery jest jedną z opcji.Nie sądzę, że można powiązać wyzwalacz z tym zdarzeniem w widoku ('
), ponieważ nie jest to zwykłe zdarzenie DOM ... Zazwyczaj będziesz chciał enkapsulować całą logikę związaną z DOM, używając jQuery lub zwykłego DOM , do niestandardowych elementów lub niestandardowych atrybutów. To znaczy. w tym przypadku możesz użyć elementu niestandardowego i mieć coś w rodzaju 'Kolejny pomysł ... Można utworzyć niestandardowy atrybut 'focus-child' który obsłużyłby zdarzenie 'shown.bs.collapse' i ustawił fokus na pierwszy element wejściowy lub element o podanej wartości identyfikatora. Dzięki temu możesz po prostu dodać ten atrybut, aby zwinąć div - '
'. Więcej o atrybutach niestandardowych w dokumentach - http://aurelia.io/docs#/aurelia/framework/1.0.0-beta.1.1.4/doc/article/cheat-sheet/8 –