0

我是淘汰赛的新手,并试图弄清楚如何使它适用于我当前的项目。具体来说,我有一个视图模型,它通过对服务器的 ajax 调用加载了 json 数据。一旦接收到数据,就会应用剔除绑定,并且数据会以 html 的形式显示在屏幕上。效果很好。

现在困难的部分......(至少对我来说)另外,在 html 中,我有元素(复选框、单选按钮、下拉菜单等),用户可以在其中选择值。选择完值后,该用户单击一个按钮来更新页面上的数据。因此,单击按钮会将选定的值发送回服务器,以重新查询数据库以获取新的数据集合。然后服务器需要将更新后的 json 列表发送回页面并敲除,viewmodel 和 html 显示需要用新数据更新。或者,至少这是我需要它的工作方式。一段时间以来,我一直在思考如何做到这一点。

那么,在查询完数据库,绑定knockout和viewmodel,展示数据后,如何通过重新查询数据库请求不同的数据,从服务器获取新数据,重新绑定knockout和viewmodel到新数据,并显示新数据在同一个 html 页面中(仅包含更新的数据)??????

提前致谢!

4

1 回答 1

0

您可以尝试在 View Model 中使用代表您的数据的模型并更新此模型,而不是更新整个 View Model

        function ViewModel()
        {
            this.data = ko.observable();
            var self = this;

            self.load = function()
            {
                var dataModel = new DataModel(1, 'Value');
                self.data(dataModel); // init
            };

            self.update = function()
            {
                var dataModel = new DataModel(2, 'Value UPD');
                self.data(dataModel); // update
            };
        }

        function DataModel(id, property)
        {
            this.id = id;
            this.property = property;
        }

        ko.applyBindings(new ViewModel());
于 2012-08-30T06:23:37.477 回答