2011-08-08 11 views
2

HTMLをdiv要素にバインドしようとしていますが、そのdivのコンテンツを場所エディタで編集して保存ボタンをクリックして取得していますが、失敗しました。HTMLバインディングのコンテンツへの変更を監視する

ビューは次のようになります。このJavaScriptを使用して

<div id="content" data-bind="html: content"></div> 
<button data-bind="click: function(){ save() }">Save</button> 

var viewModel = { 
    content: ko.observable("<h3>Test</h3>"), 
    save: function(){ 
     console.log(ko.toJSON(viewModel));  
    } 
} 

$(function(){ 
    ko.applyBindings(viewModel); 
    $("#content").html("<h4>Test</h4>"); 
    ko.applyBindings(viewModel,document.getElementById('content')); 
}); 

this jsfiddleを参照してください。

コンソールを保存すると、まだ<h3>Test</h3>と表示されます。

私はここで何をしようとしていますか?

+0

あなたは何をしようとしているのか説明できますか? –

答えて

5

通常、編集可能ではない要素に配置されるため、htmlバインディングでは変更をキャッチするイベントハンドラは設定されません。

contenteditable属性を使用した例を次に示します。http://jsfiddle.net/rniemeyer/JksKx/(このスレッドから)

TinyMCEのようなエディタと統合する場合は、http://jsfiddle.net/rniemeyer/GwkRQ/(このスレッドから)です。

関連する問題