Knockout.js knockoutJS-从其他javascript函数重新绑定表

Knockout.js knockoutJS-从其他javascript函数重新绑定表,knockout.js,Knockout.js,我使用KnockoutJS来显示用户列表。在同一页上,一个链接会触发一个阴影框模式窗口。当用户关闭模式时,我希望刷新用户列表。我已经有了来自Shadowbox模式触发的回调函数,但是如何让它刷新用户列表呢 function User(data) { this.firstname = ko.observable(data.firstname); this.lastname = ko.observable(data.lastname);

我使用KnockoutJS来显示用户列表。在同一页上,一个链接会触发一个阴影框模式窗口。当用户关闭模式时,我希望刷新用户列表。我已经有了来自Shadowbox模式触发的回调函数,但是如何让它刷新用户列表呢

        function User(data) {
            this.firstname = ko.observable(data.firstname);
            this.lastname = ko.observable(data.lastname);
            this.fullname = ko.computed(function () {
                return this.firstname() + " " + this.lastname();
            }, this);
            this.userfunctions = ko.observable(data.userfunctions);
            this.phonework = ko.observable(data.phonework);
            this.phonemobile = ko.observable(data.phonemobile);
            this.email = ko.observable(data.email);
            this.editurl = ko.observable(data.editurl);
        }

        function UserListViewModel() {
            var self = this;
            self.users = ko.observableArray([]);

            self.users.loading = ko.observable(false);

            self.users.loading(true);
            $.getJSON("/UserJSON.ashx", {
                requestType: "userList",
                pageId: '12',
                companyId: '1'
            },
            function (allData) {
                var mappedUsers = $.map(allData, function (item) { return new User(item); });
                self.users(mappedUsers);
                self.users.loading(false);
            });
        }

        ko.applyBindings(new UserListViewModel());

你看过淘汰图了吗?它处理来自服务器的数据更新:

我将在viewmodel上创建一个数据属性,该属性从敲除映射中加载,并可以从中更新。我将使用JSFIDLE并更新这个答案

更新

我正在开发一个JSFIDLE,但发现一个已经完成了:-谢谢RP Niemeyer

更新2

我更新了你的JSFIDLE:

对于这一点:


若要查看其工作情况,请首先单击“加载初始数据”,然后单击“阴影盒回调”。这是否回答了您的问题?

在模式窗口中,您是添加条目还是修改已有的条目?如果修改,您是在修改self.users中的实际实例还是新的用户对象,然后在用户确认后替换self.users中的实例将建议第二个实例以允许取消更改。顺便说一句,我假设您的目的是刷新用户列表,您的意思是不必返回到/UserJSON.ashx。我已经处理了从服务器加载数据的过程。我需要弄清楚如何从另一个js函数调用'click:loadUpdateData'。。。我有一个现有的回调函数,当我关闭一个ShadowBox-modal时,它正在被调用。你看JSFIDLE了吗?我现在可能有点迟钝,但我不知道这如何显示如何从另一个函数调用LoadUpdateData。它只是告诉我如何绑定一个点击事件的按钮,我没有。。。查看更新的小提琴。在底部你可以看到我的功能。