我正在使用最新的CKEditor(标准版)并基于这个 问题,我已经实现了这样的角度指令,
var cmsPlus = angular.module('cmsPlus', []);
cmsPlus.directive('ckEditor', function() {
return {
require: '?ngModel',
link: function(scope, elm, attr, ngModel) {
var ck = CKEDITOR.replace(elm[0]);
if (!ngModel) return;
ck.on('pasteState', function() {
scope.$apply(function() {
ngModel.$setViewValue(ck.getData());
});
});
ngModel.$render = function(value) {
ck.setData(ngModel.$viewValue);
};
}
};
});
Run Code Online (Sandbox Code Playgroud)
当我在CKEditor GUI模式下输入内容时,它工作正常,这里我将输入的内容添加到textarea的ng-model中.
但是当我切换到代码编辑器时,即使在切换回GUI之后也没有获得更新的内容.需要在图形模式下再次键入内容.
我的指令有什么问题?或者我可以使用其他一些CKEditor事件扩展此指令吗?
我想为表单提交或其他内容添加更多事件.
我使用了Vojta的angularJS指令,但有时ckeditor无法显示服务中的数据.这几乎从未在刷新时发生,但在导航回页面时经常发生.我能够验证$ render函数始终使用正确的数据调用ck.setData,但有时它不会显示.