I have an Angular 1 app that works with a simple contentEditable directive, which can be used like this in templates:
If you simply want to change the value using pure JavaScript and do not want to go towards the [(model]) route, then this is for you.
const input = this.el.nativeElement.querySelector('#myElement');
input.value = 'My Programmatic Value';
input.dispatchEvent(new Event('input'));
Issue - https://github.com/text-mask/text-mask/issues/696
Solution - https://github.com/text-mask/text-mask/issues/696#issuecomment-354887412
Hope this helps someone.
Cheers!