docs: function(ed) {
              ed.on('init', function() {
                ngModel.$render();
                ngModel.$setPristine();
                  ngModel.$setUntouched();
                if (form) {
                  form.$setPristine();
                }
              });
  
              // Update model when:
              // - a button has been clicked [ExecCommand]
              // - the editor content has been modified [change]
              // - the node has changed [NodeChange]
              // - an object has been resized (table, image) [ObjectResized]
              ed.on('ExecCommand change NodeChange ObjectResized', function() {
                if (!options.debounce) {
                  ed.save();
                  updateView(ed);
                	return;
                }
                debouncedUpdate(ed);
              });
  
              ed.on('blur', function() {
                element[0].blur();
                ngModel.$setTouched();
                if (!$rootScope.$$phase) {
                  scope.$digest();
                }
              });
  
              ed.on('remove', function() {
                element.remove();
              });
  
              if (uiTinymceConfig.setup) {
                uiTinymceConfig.setup(ed, {
                  updateView: updateView
                });
              }
  
              if (expression.setup) {
                expression.setup(ed, {
                  updateView: updateView
                });
              }
            }