ノックアウトを使用して html エディター/プレビューアーを作成しようとしています。次のように、単一のオブザーバブルを使用して簡単なテストを設定しました。
JS:
var ViewModel = function() {
this.content = ko.observable("<div data-bind=\"text: 'testext'\"></div>");
};
ko.bindingHandlers.bindHTML = {
'init': function () {
},
'update': function (element, valueAccessor) {
ko.utils.setHtml(element, valueAccessor());
}
}
ko.applyBindings(new ViewModel());
HTML:
<input type="text" data-bind="value: content">
これは、ページが最初に読み込まれ、「testtext」を含む div が表示されたときに正常に動作するように見えますが、入力フィールドを
<div data-bind=\"text: 'testext2'\"></div>
バインディングのようなものに編集するとすぐに動作しません!
これはノックアウトの制限ですか、それとも何か間違っていますか? リバインドを実行する方法はありますか?
JSFiddle はこちらから入手できます: http://jsfiddle.net/Q9LAA/