【问题标题】:Knockout Binding Handlers undefined error淘汰赛绑定处理程序未定义错误
【发布时间】:2014-07-01 14:35:02
【问题描述】:

我有这个jsfiddle,它显示了一个表格和一些具有角色的用户。

我希望在一些点击添加角色等时弹出一个模态表单。

这个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 dev video 的代码

34 分钟。

这是一个Bootstrap模态对话,使用Knockout JS作为绑定库

【问题讨论】:

    标签: javascript jquery twitter-bootstrap knockout.js


    【解决方案1】:

    with 绑定不再具有更新功能

    从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 个月前的事,可能和你用的不是同一个淘汰版
    • 好的,那条线在哪里,在返回之前?
    • 是的 - with 绑定的 update 函数在最近的版本中被删除(更改是在 KO 3.1 中)。在您的情况下,您可以完全从 update 处理程序中删除对 with 绑定的 update 调用的调用。另一种选择是使用 @Anders 在 init 函数中列出的调用,尽管您希望将上下文作为第三个参数传递(上下文是进入 init/update 函数的第 5 个参数)并且您希望 @ 987654330@ 来自init
    • @RPNiemeyer 你能帮我编辑一下 jsfiddle,因为我觉得很难理解书面文字吗?
    • 谢谢@Anders,我会试一试
    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2016-03-31
    • 1970-01-01
    • 2014-11-29
    • 2016-01-22
    相关资源
    最近更新 更多