使用Angular启用和禁用CKEditor内联编辑

时间:2016-08-18 06:32:10

标签: angularjs ckeditor

如何根据点击按钮/链接启用或禁用div上的ckeditor.inline。

这是我在jquery中实现它的方法,但无法用angular来解决它。

$('.toggle-edit').click(function(e){ 
  var id_editedDiv = $(this).data('editTarget');
  var editedDiv = '#' + id_editedDiv;

  if( $(editedDiv).attr('contenteditable') == 'true' )
  {
    $(editedDiv).attr('contenteditable','false');
    CKEDITOR.instances.id_editedDiv.destroy();
    $(this).text('Start Editing');
  }
  else
  {
    $(editedDiv).attr('contenteditable','true');
    CKEDITOR.inline( id_editedDiv );
    $(this).text('Finish Editing');
  }
});

这就是我取得成果的方式。

https://plnkr.co/edit/YUOYGa?p=preview

但现在我需要弄清楚如何将模型绑定到CKEditor,以便在我点击保存时在模型中更新我的更改。

2 个答案:

答案 0 :(得分:0)

您可以使用带有ng-click属性的按钮,例如:

do {
    try managedObjectContext.save()
} catch {
    fatalError("Failure to save context: \(error)")
}

在CKEditorController中你应该定义方法:

<button type="button" class="inlineEditButton"
    ng-controller="CKEditorController"
    ng-click="changeInlineEditindState()"
</button>

您可以执行以下操作:

$scope.changeInlineEditindState = function() {
// your code
}

创建实例后添加侦听器:

var content = '';

点击保存按钮:

ck.on('instanceReady', function () {
                ck.setData(content);
            });

答案 1 :(得分:0)

销毁编辑器实例,释放它使用的所有资源。如果编辑器替换了元素,则元素将被恢复。

在您的控制器中:

alert( CKEDITOR.instances.editor1 ); // e.g. object
CKEDITOR.instances.editor1.destroy();
alert( CKEDITOR.instances.editor1 ); // undefined

More detail