有时数据不会以角度加载到CKeditor

时间:2016-08-26 15:12:44

标签: javascript angularjs ckeditor

我在angular指令中有这段代码。

var ck = CKEDITOR.replace(element[0]);             
          ngModel.$render = function () {
            $timeout(function () {
               ck.setData(ngModel.$modelValue);
             },350);
           };

           ck.on('instanceReady', function () {
               $timeout(function () {
                 ck.setData(ngModel.$viewValue);
               },350);
           });

           function updateModel() {
             scope.$apply(function () {
                   ngModel.$setViewValue(ck.getData());
             });
           }

          ck.on('pasteState', updateModel);

但是,有时,通过API加载的数据不会在没有任何错误的情况下设置。 console.log(ngModel.$viewValue)始终显示信息。

1 个答案:

答案 0 :(得分:0)

CKEditor 4 documentation内,没有“pasteState”事件,只有“粘贴”。所以你应该听“粘贴”或“改变”事件。 像这样:

var ck = CKEDITOR.replace(element[0]);             

ck.on('instanceReady', function () {
    $timeout(function () {
     ck.setData(ngModel.$viewValue);
    },350);
});

function updateModel() {
    scope.$apply(function () {
       ngModel.$setViewValue(ck.getData());
    });
}

ck.on('paste', updateModel);
ck.on('change', updateModel);

ngModel.$render = function () {
    $timeout(function () {
       ck.setData(ngModel.$modelValue);
     },350);
};