我在项目中使用多个ckeditor
,它们具有不同的ID和名称。这对于我有静态编辑器的页面工作正常,但对于有动态编辑器的页面却有问题。它们没有绑定到我项目的ng-model
。
这是我创建的指令
angular.module('MyProjectName').directive('ckEditor', function () {
return {
require: '?ngModel',
link: function (scope, elm, attr, ngModel) {
var ck = CKEDITOR.replace(elm[0]);
if (!ngModel) return;
ck.on('instanceReady', function () {
ck.setData(ngModel.$viewValue);
});
function updateModel() {
scope.$apply(function () {
ngModel.$setViewValue(ck.getData());
});
}
ck.on('change', updateModel);
ck.on('key', updateModel);
ck.on('dataReady', updateModel);
ngModel.$render = function (value) {
ck.setData(ngModel.$viewValue);
};
}
};
});
这是html
<textarea data-ck-editor id="Demo" name="Demo" ng-model="DemoValue"></textarea>