AngularJS and contentEditable two way binding doesn’t work as expected
The problem is that you are updating the view value when the interpolation is not finished yet. So removing // load init value from DOM ctrl.$setViewValue(element.html()); or replacing it with ctrl.$render(); will resolve the issue.