угловое динамическое добавление директивы contenteditable не работает?

Runnable CODE: мой код

Я пытаюсь динамически добавить директиву contenteditable к элементу ‹div› при двойном щелчке. когда я вначале помещаю директиву contenteditable в ‹div›, ng-model все еще работает, но когда я удаляю ее и динамически добавляю в обратном вызове ng-dblclick, швы ng-model больше не работают.

Это похоже на этот вопрос.

но я не могу придумать удобный способ закончить свою работу здесь. Как я могу это исправить?

код: html

<div ng-app="customControl">
  <form name="myForm" ng-controller="mainControl">

    <!-- Dynamically adding contenteditable directive : doesn't work -->
    <div name="myWidget" ng-model="userContent" ng-click="enableEdit($event)"
      strip-br="true"
      required>Change me!</div>

    <hr>
    <textarea ng-model="userContent"></textarea>

  </form>
</div>

код: js

angular.module('customControl', []).
controller('mainControl', function($scope) {
    $scope.enableEdit = function(e) {
        $(e.target).attr('contenteditable', '');
    }
})
.directive('contenteditable', function() {
    return {
      restrict: 'A', // only activate on element attribute
      require: '?ngModel', // get a hold of NgModelController
      link: function(scope, element, attrs, ngModel) {
        if(!ngModel) return; // do nothing if no ng-model

        // Specify how UI should be updated
        ngModel.$render = function() {
          element.html(ngModel.$viewValue || '');
        };

        // Listen for change events to enable binding
        element.on('keyup change', function() {
          scope.$apply(read);
        });
        read(); // initialize

        // Write data to the model
        function read() {
          var html = element.html();
          // When we clear the content editable the browser
          // leaves a <br> behind
          // If strip-br attribute is provided then we strip this out
          if( attrs.stripBr && html == '<br>' ) {
            html = '';
          }
          ngModel.$setViewValue(html);
        }
      }
    };
});

person Mr.Raindrop    schedule 25.09.2013    source источник