angular-ui / ui-tinymce

AngularUI wrapper for TinyMCE
MIT License
488 stars 371 forks source link

Holding backspace down to delete all the characters does not update the model #327

Open chuckconway opened 7 years ago

chuckconway commented 7 years ago

I'm having an issue where holding down the backspace key removes all the characters from the editor, but it does not update the angular model.

From what I can tell this code is not firing:

      updateView = function(editor) {
        var content = editor.getContent({format: options.format}).trim();
        content = $sce.trustAsHtml(content);

        ngModel.$setViewValue(content);
        if (!$rootScope.$$phase) {
          scope.$digest();
        }
      };

Steps to reproduce:

  1. Enter text into the editor
  2. Put the cursor at the end of the text and hold the backspace key down until all text is removed from the tinyMCE editor.
  3. Even though the editor is blank, text is still displayed from the model.

What I'm expecting is the data entered to be deleted from the model. However, the editor doesn't have any text but the ng-model is still displaying text.

I've created a plunker where this issue is reproducible. https://plnkr.co/edit/l2TivBCPhWrZbtFRmLJ9

chuckconway commented 7 years ago

I've discovered a workaround -- set debounce to 'false'.

I've also noticed debounced to hardcoded to 400ms. Maybe make this a configurable value?

When I reduce the debounce to 50ms, I'm no longer able to reproduce the issue.

murilozilli commented 6 years ago

+1