2016-08-18 11 views
0

ボタン/リンクのクリックに基づいてdivのckeditor.inlineを有効または無効にする方法を教えてください。CKEditorを有効または無効にする角度を使用してインライン編集

これは私がjqueryで達成する方法ですが、角度を使用してそれを把握することはできません。

$('.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バージョンにモデルをバインドする方法を理解する必要があります。

var content = ''; 

:あなたが好きな何かを行うことができます

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

:あなたがメソッドを定義する必要がありますCKEditorControllerで

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

答えて

0

あなたは、例えばNGクリック属性を持つボタンを使用することができますインスタンス作成後にリスナーを追加:

012ボタンのクリックを保存するには
ck.on('instanceReady', function() { 
       ck.setData(content); 
      }); 

content = ck.getData(); 
+0

が、問題が生じていますコンテンツをモデルに戻してバインドします –

+1

私はコードを少し変更しました。 https://plnkr.co/edit/EHIpCw4ORLW6MzGOGCsa?p=preview 必要な場合はプレーンテキストを取得するだけです – Sabik

+0

ありがとうございます。それは私がやったことです。モデルがCKEditorにバインドされておらず、角度フレームワークを使用して更新されていないため、実際には角度を正しく使用しているとは思わなかった。ソリューションを使って投稿を追加すると、答えとして –

0

はそれで使用されるすべてのリソースを解放し、エディタインスタンスを破棄します。エディタが要素を置き換えた場合、その要素は復元されます。

お使いのコントローラで

:あなたはhttps://plnkr.co/edit/YUOYGa?p=previewを見れば、私はそれを行う方法を考え出し

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

More detail

+0

をマークすることができます。破棄を使用してCKEditorを有効または無効にする方法を知っています。 AngularJSを使用して実装しようとしています。したがって、jQueryを使用しないでください。問題は、私のサンプルのplnkrでは、セーブクリックでモデルを元に戻す方法がわかりません –

関連する問題