使用方法看注释。主要解决帮上ngModel的问题
angular.module('newApp')
.directive('ckeEditor', function() {
return {
/*
For Example:
<textarea id="..." name="..." class="form-control" cke-editor
rows="10" cols="80" ng-model="..."></textarea>
*/
restrict: 'A',
require: '?ngModel',
link: function(scope, element, attrs, ngModel) {
var ckeditor = CKEDITOR.replace(element[0], {
toolbar :[
['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'],
['Link','Unlink','Anchor'],
['Image', 'Table', 'HorizontalRule', 'SpecialChar'],
['Source'],
['Bold', 'Italic', 'Strike','-', 'RemoveFormat'],
['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote'],
['Format'],
['Styles']
]
});
ckeditor.on('instanceReady', function() {
ckeditor.setData(ngModel.$viewValue);
});
ckeditor.on('pasteState', function() {
scope.$apply(function() {
ngModel.$setViewValue(ckeditor.getData());
});
});
ngModel.$render = function(value) {
ckeditor.setData(ngModel.$viewValue);
}
}
}
})