我有TinyMCE WYSiWYG編輯器呈現文本取決於選定的對象,但遇到綁定的問題。TinyMCE與淘汰賽數據綁定將不會更新
第一個「instanciation」似乎工作,但是從下拉可用文本列表中選擇一個新的文本時,編輯器變成空白和Firebug的控制檯告訴我:
類型錯誤:D.hasChildNodes不是一個函數「i」,「string」== typeof r){try {r =「true」=== r?!0:「false」=== r?!1:「null」=== ·R空:+ R ...
和
NS_ERROR_UNEXPECTED:意外的錯誤 ....../「$ 1」));返回false}});如果(u.getParam( 「accessibility_focus」! )){g.add(i.add(k,「a ...
我試圖在這裏重新創建我的代碼:http://jsfiddle.net/xc4sz/1/ 這不是100%,但至少它不起作用。 ;)
如果我不是直接從文本1點擊文本2點擊「選擇選項」,文本會正確顯示。
我猜它與下面的「初始化」部分做:
ko.bindingHandlers.tinymce = {
init: function (element, valueAccessor, allBindingsAccessor, context) {
var options = allBindingsAccessor().tinymceOptions || {};
var modelValue = valueAccessor();
var value = ko.utils.unwrapObservable(valueAccessor());
var el = $(element)
//handle edits made in the editor. Updates after an undo point is reached.
options.setup = function (ed) {
console.log(ed)
ed.onChange.add(function (ed, l) {
if (ko.isWriteableObservable(modelValue)) {
modelValue(l.content);
}
});
};
//handle destroying an editor
ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
setTimeout(function() { $(element).tinymce().remove() }, 0)
});
//$(element).tinymce(options);
setTimeout(function() { $(element).tinymce(options); }, 0);
el.html(value);
},
update: function (element, valueAccessor, allBindingsAccessor, context) {
var $element = $(element),
value = ko.utils.unwrapObservable(valueAccessor()),
id = $element.attr('id');
//handle programmatic updates to the observable
// also makes sure it doesn't update it if it's the same.
// otherwise, it will reload the instance, causing the cursor to jump.
if (id !== undefined) {
var tinymceInstance = tinyMCE.get(id);
if (!tinymceInstance)
return;
var content = tinymceInstance.getContent({ format: 'raw' });
if (content !== value) {
$element.val(value);
//this should be more proper but ctr+c, ctr+v is broken, above need fixing
//tinymceInstance.setContent(value,{ format: 'raw' })
}
}
}
};
不錯的,michaelpapworth。 我可以挑戰您將文本的標記/自動標記添加到綁定中嗎? ;) –
我不確定在綁定的上下文中「標記/自動標記」的含義。你介意在GitHub上爲我的存儲庫創建一個問題,供我考慮嗎? –