Javascript 敲除绑定处理程序未定义错误

Javascript 敲除绑定处理程序未定义错误,javascript,jquery,twitter-bootstrap,knockout.js,Javascript,Jquery,Twitter Bootstrap,Knockout.js,我有一个表和一些角色用户 我想有一个模态形式弹出时,一些点击添加角色等 此ko.bindingHandlers.modal函数的更新属性似乎有错误: ko.bindingHandlers.modal = { init: function (element, valueAccessor) { $(element).modal({ show: false }).on("hidden", function () { var data = valueAcc

我有一个表和一些角色用户

我想有一个模态形式弹出时,一些点击添加角色等

ko.bindingHandlers.modal
函数的更新属性似乎有错误:

ko.bindingHandlers.modal = {
    init: function (element, valueAccessor) {
        $(element).modal({ show: false }).on("hidden", function () {
            var data = valueAccessor();
            if (ko.isWriteableObservable(data))
                data(null);
        });

        return ko.bindingHandlers["with"].init.apply(this, arguments);
    },
    update: function (element, valueAccessor) {
        var data = ko.unwrap(valueAccessor());

        $(element).modal( data ? "show" : "hide" );

        return ko.bindingHandlers["with"].update.apply(this, arguments); // Error on this line
    }
};
我不知道为什么会发生这种情况,我从Ryan Niemeyer那里复制了代码

34分钟就到了


这是一个引导模式对话,使用Knockout JS作为绑定库

带有绑定的
不再具有更新功能

从init函数使用

ko.applyBindingsToNode(element, { with: valueAccessor() });
更新

ko.bindingHandlers.modal = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        $(element).modal({ show: false }).on("hidden", function () {
            var data = valueAccessor();
            if (ko.isWriteableObservable(data))
                data(null);
        });



        ko.applyBindingsToNode(element, { with: valueAccessor() }, bindingContext);

        return { controlsDescendantBindings: true };
    },
    update: function (element, valueAccessor) {
        var data = ko.unwrap(valueAccessor());

        $(element).modal( data ? "show" : "hide" );;
    }
};

@No1_Melman这是9个月前的版本,可能与您使用的版本不一样好吧,那么在返回之前,这一行去了哪里?是的-在最近的版本中删除了带绑定的
更新
功能(更改在KO 3.1中)。在您的情况下,您可以完全从
update
处理程序中删除对
绑定的
update
调用。另一个选项是使用@Anders在
init
函数中列出的调用,尽管您希望将上下文作为第三个参数传递(上下文是进入init/update函数的第五个参数),并且希望
返回{controlsDescendantBindings:true;
init
@RPNiemeyer你能帮我编辑JSFIDLE吗,因为我发现很难理解书面文本?谢谢@Anders,我会试试的