Как получить содержание textarea nicEdit в ng-модели?

Я новичок в разработке Angular и HTML. Так что я пока не знаю всех возможностей и кодовых терминов.

Я создал форму, которая содержит богатое поле textarea. Я использовал nicEdit, так как это тот, который рекомендован mycompany (поэтому не может быть изменен редактор). Как вы можете видеть на изображении ниже, nicEdit работает хорошо.

Но когда я хочу получить содержимое поля в ng-модели, это не работает. Большая часть вопросов и ответов на форуме сообщает, что эта ng-модель не работает должным образом с этой текстовой областью nicEdit. Я нашел кое-что о директиве для создания. Поэтому я попытался изменить один из них, посвященный ckEditor. Но это не работает. Я обнаружил, что $('div.nicEdit-main') был обновлен div (но не мое поле htmlLondDesc, присоединенное к текстовой области nicEdit, ни ng-модель).

Я также нашел кое-что о nicEditors.findEditor('htmlLongDesc'). GetContent(); но я не знаю, где его использовать в модели нг...

Итак, как получить содержимое nicEdit и сохранить его в ng-модели? Заранее спасибо за помощь.

Вот изображение текстовой области. Вот мой код js и html:

scApp.directive('ncGetContent', function () {
    return {
        require: 'ngModel',
        link: function (scope, elm, attr, ngModel) {
          var content = $('div.nicEdit-main').html();
          if (!ngModel) return;
          content.on('instanceReady', function () {
            content.setData(ngModel.$viewValue);
          });
          function updateModel() {
            scope.$apply(function () {
              ngModel.$setViewValue(content.getData());
            });
          }
          content.on('change', updateModel);
          content.on('key', updateModel);
          content.on('dataReady', updateModel);
    
          ngModel.$render = function (value) {
            content.setData(ngModel.$viewValue);
            
          };
        }
      };
    });
 
  <head>
    <script type="text/javascript">
    bkLib.onDomLoaded(function() {
    var myEditor = new nicEditor({buttonList : ['bold','italic','underline','subscript','superscript','forecolor','bgcolor']}).panelInstance('htmlLongDesc');
    var nicInstance = nicEditors.findEditor('htmlLongDesc');
    });
    </script>
 </head>
 
 ...
 
  <textarea id="htmlLongDesc" cols="140" rows="6" name="htmlLongDesc"  ng-model="user.htmlLongDesc" ncGetContent ></textarea>
                        

0 ответов

Другие вопросы по тегам