Рассмотрим следующую разметку -Navigate интерфейс с помощью клавиатуры
<ul id="list">
<li class="list-item" tabindex="0">test 1</li>
<li class="list-item" tabindex="1">test 2</li>
<li class="list-item" tabindex="2">test 3</li>
<li class="list-item" tabindex="3">test 4</li>
<li class="list-item" tabindex="4">test 5</li>
<li class="list-item" tabindex="5">test 6</li>
<li class="list-item" tabindex="6">test 7</li>
</ul>
и этот кусок кода JQuery -
$(".list-item").bind({
keydown: function(e) {
var key = e.keyCode;
var target = $(e.currentTarget);
switch(key) {
case 38: // arrow up
target.prev().focus();
break;
case 40: // arrow down
target.next().focus();
break;
}
},
focusin: function(e) {
$(e.currentTarget).addClass("selected");
},
focusout: function(e) {
$(e.currentTarget).removeClass("selected");
}
});
$("li").first().focus();
Как я порт этот код в угловой? У меня это до сих пор -
<li class="list-item" ng-repeat="item in items" tabindex="{{item.tabIndex}}">
{{item.name}}
</li>
Как сделать привязку в угловом?
Спасибо. Я уже смотрю на них. Я новичок в том, что углы, поэтому обертывание головы вокруг директив является сложной задачей. – tempid
[Ответ в этой теме] (http://stackoverflow.com/questions/15044494/what-is-angularjs-way-to-create-global-keyboard-shortcuts) использует описанный выше метод для захвата ключевых событий. – rGil
Возможный дубликат [Перемещение по пользовательскому интерфейсу с использованием только клавиатуры] (http://stackoverflow.com/questions/17388021/navigate-the-ui-using-only-keyboard) –