Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jwysiwyg textarea的敲除绑定处理程序_Javascript_Html_Knockout.js_Jwysiwyg - Fatal编程技术网

Javascript jwysiwyg textarea的敲除绑定处理程序

Javascript jwysiwyg textarea的敲除绑定处理程序,javascript,html,knockout.js,jwysiwyg,Javascript,Html,Knockout.js,Jwysiwyg,所以我注意到knockout js不能很好地与jQuery jwysiwyg插件配合使用 读完这篇博文后: 这就是答案: 我编写了以下绑定处理程序: ko.bindingHandlers.wysiwyg = { init: function (element, valueAccessor, allBindingsAccessor) { var options = allBindingsAccessor().wysiwygOptions || {};

所以我注意到knockout js不能很好地与jQuery jwysiwyg插件配合使用

读完这篇博文后: 这就是答案:

我编写了以下绑定处理程序:

    ko.bindingHandlers.wysiwyg = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        var options = allBindingsAccessor().wysiwygOptions || {};
        var value = ko.utils.unwrapObservable(valueAccessor());
        var $e = $(element);
        $.extend(true, {
            initialContent : value
        }, options);

        $e.wysiwyg(options);

        //handle the field changing
        function detectFn() {
            var observable = valueAccessor();
            var newvalue = $e.wysiwyg("getContent");
            observable(newvalue);
        }

        var current = $e.wysiwyg('document');
        var timer;
        current.bind({    
            keyup: function(){
                clearTimeout(timer);
                timer = setTimeout(detectFn, 1000);
            }
        });

        //handle disposal (if KO removes by the template binding)
        ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
            $e.wysiwyg('destroy');
        });
    },
    update: function (element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());
        $(element).wysiwyg("setContent", value);
        ko.bindingHandlers.value.update(element, valueAccessor);
    }
};
这样使用:

<textarea data-bind="wysiwyg: yourViewModelValue"></textarea>

到目前为止,它的工作为我,任何意见将不胜感激


我认为这对任何想让kockout js和jwysiwyg一起绑定textarea元素的人来说都是有用的。

绑定不错,但这不是一个真正的问题。如果你还没有,你应该把这篇文章发布在KO谷歌群上。谢谢你提供的信息,但这并不完全是我们在这里做事情的方式。如果你愿意的话,把这当作一个问题,然后把它重新打开(比如说我在国旗上建议的!)。然后,您可以添加详细说明解决方案的答案。两天后,您可以选择正确答案并结束问题。这可能会让人感到奇怪,但这是在这里共享信息的公认方式。谢谢。您好,这似乎是一种方式,但当我通过jwysiwyg更改textarea中的值时,值敲除没有,关于如何使两者同步的任何线索?很棒的绑定,帮助我使用另一个jquery编辑器markitup。可惜它关闭了,因为我本可以把我的装订也贴上去。这并不是我们在这里所做的,因为我相信这会很有帮助。