我在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)
始终显示信息。
答案 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);
};