2016-03-05 3 views
2

У меня есть таблица customelement со следующей спецификацией: TBODYAurelia редактируемого колонок KeyDown

<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> 

И на KeyDown триггер:

onCellEditorKeydown(event) { 
    if (this.editable) { 
     if (event.keyCode == 13) { 
      this.switchCellToViewMode(event.target); 
     } 
    } 
} 

Но keydown.trigger делает ввод невозможно писать в. Удалив триггер, он работает нормально.

Есть ли что-то, что мне не хватает здесь?

уш HW

+0

Попробуйте оберточной входной элемент в простом виде элемента, и привязывая обработчик событий вместо формы, используя ' ' –

ответ

3

Возвращение true из обработчика события KeyDown так поведение по умолчанию браузера не отменяется.

Вот пример: https://gist.run?id=d9acea04776f6b20000c

app.html

<template> 
    <input keydown.trigger="handleKeydown($event)"> 
</template> 

app.js

export class App { 

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

} 
+0

Ах, вы правы. BTW, сделал чек с угловым 2, а возврат истины не понадобился ... –

+0

Извините за путаницу, я сделал кое-что, вот что я нашел: https://github.com/aurelia/binding/issues/ 336 –

+0

Спасибо за следующее. Я прочитал вопросы, и теперь я понимаю причину. Хороший ход :-) –

Смежные вопросы