aurelia可编辑列keydown

Hel*_*tad 2 javascript aurelia

我有一个表customerlement与以下tbody规范:

<tbody class="ui-datatable-data ui-widget-content">
    <tr ref="rowElement" repeat.for="rowData of dataToRender" class="ui-widget-content ${$odd ? 'ui-datatable-odd':'ui-datatable-even'} ${(selectionMode && rowElement == hoveredRow) ? 'ui-state-hover':''}" mouseenter.trigger="hoveredRow = $event.target"  mouseleave.trigger="hoveredRow = null" click.trigger="onRowClick($event, rowData,$index)">
       <td repeat.for="col of columns" attr.style.bind="col.style" attr.class.bind="col.styleClass" class="${col.editable ? 'ui-editable-column':''}"  click.trigger="switchCellToEditMode($event.target)">
           <span class="ui-column-title" if.bind="responsive">${col.header}</span>
           <span class="ui-cell-data" click.trigger="switchCellToEditMode($event.target)">${rowData[col.field]}</span>
           <input type="text" class="ui-cell-editor ui-state-highlight" if.bind="col.editable" value.bind="rowData[col.field]" blur.trigger="switchCellToViewMode($event.target)" keydown.trigger="onCellEditorKeydown($event)" />
       </td>
     </tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

而keydown触发器:

onCellEditorKeydown(event) {
    if (this.editable) {
        if (event.keyCode == 13) {
            this.switchCellToViewMode(event.target);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是keydown.trigger使输入无法写入.通过移除触发器,它正常工作.

这里有什么我想念的吗?

br hw

Jer*_*yow 5

true从keydown事件处理程序返回,因此不会取消浏览器的默认行为.

这是一个例子:https://gist.run?id = d9acea04776f6b20000c

app.html

<template>
  <input keydown.trigger="handleKeydown($event)">
</template>
Run Code Online (Sandbox Code Playgroud)

app.js

export class App {

  handleKeydown(event) {
    // return true so the default behavior isn't canceled.
    return true;
  }

}
Run Code Online (Sandbox Code Playgroud)