0

基本上我想要做的是将一个数组变成一个 div 列表,可以使用键盘上的向上和向下箭头进行导航。我让键盘事件使用键盘上的任何字母('u'、'd'等)工作,但我不知道如何使用箭头键来执行此操作。

{{action 'testing' this on="keyPress" allowedKeys="d⇧f"}}

当我按下“d”或“f”但不会触发向上箭头键时,上面的示例将调用我的方法测试。

谁能指出我也可以使用箭头键和 esc 来完成这项工作?我需要根据不同的键调用不同的方法,所以我认为我需要添加多个动作处理程序,并且据我所知,键不会被传入。

4

1 回答 1

1

我设法在另一个论坛上得到了答案,并认为我会在此处发布答案的链接以及答案。

带有答案的帖子是http://discuss.emberjs.com/t/need-help-with-allowedkeys-on-action-for-special-keys/2960/4?u=seer

你可以在这里看到关于 jsfiddle 的答案http://jsfiddle.net/NQKvy/304/

您基本上需要通过扩展视图来处理按键事件,但该示例还包括整个列表示例,其中键更改选择并在列表中上下移动 oyu。一个非常好的例子。

这是处理按键的方法,但 jsfiddler 是一个更完整的示例

App.IndexView = Ember.View.extend({
didInsertElement: function() {
    // brings the view into focus in order to capture keyUps.
    // there are a few ways to handle this, this is just one.
    return this.$().attr({ tabindex: 1 }), this.$().focus();
},
keyDown: function(e) {
    var dir;

    if(e.keyCode === 38) dir = -1;
    else if(e.keyCode === 40) dir = 1;

    if(dir) {
        this.get('controller').send('changeSelection', { direction: dir });
    }
}

});

于 2013-10-13T19:47:57.553 回答