【发布时间】:2014-09-17 02:33:50
【问题描述】:
我对淘汰自定义绑定完全陌生,我正在尝试将 ckeditor 与淘汰竞标集成,我从 Google 搜索中获得了以下绑定,
ko.bindingHandlers.wysiwyg = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var value = valueAccessor();
var valueUnwrapped = ko.unwrap(value);
var allBindings = allBindingsAccessor();
var $element = $(element);
$element.attr('contenteditable', true);
if (ko.isObservable(value)) {
var isSubscriberChange = false;
var isEditorChange = true;
$element.html(value());
var isEditorChange = false;
$element.on('input, change, keyup, mouseup', function () {
if (!isSubscriberChange) {
isEditorChange = true;
value($element.html());
isEditorChange = false;
}
});
value.subscribe(function (newValue) {
if (!isEditorChange) {
isSubscriberChange = true;
$element.html(newValue);
isSubscriberChange = false;
}
});
}
}
}
我有以下代码要绑定,
$(function () {
$.getJSON("/getdata", function (data) {
ko.applyBindings({
testList: [{
test: ko.observable()
},
{
test: ko.observable()
}]
}, document.getElementById('htmled'));
});
});
HTML如下
<div id="htmled" data-bind="foreach:testList">
Data
<div class="editor" data-bind="wysiwyg: test">Edit this data</div>
</div>
当我在 $.getJSON 方法之外调用 ko.applyBindings 时,绑定工作并显示工具栏。但是当我在里面调用 applyBindings 时,工具栏没有出现。任何机构都可以帮助我吗?我肯定错过了一些东西,非常感谢任何帮助。
添加了 Jsfiddle
工作:http://jsfiddle.net/jogejyothish/h4Lt3/1/ 不工作:http://jsfiddle.net/jogejyothish/Se8yR/2/
乔希斯
【问题讨论】:
标签: javascript jquery knockout.js ckeditor