有时候在Angular中,数据无法加载到CKeditor中。

3
我在 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

CKEditor 4文档中没有"pasteState"事件,只有"paste"事件。因此,您应该监听"paste"或"change"事件。 像这样:

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);
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接