【问题标题】:How to Update or Refresh the ViewModel Data and then the View如何更新或刷新 ViewModel 数据和视图
【发布时间】:2012-08-30 14:23:37
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: knockout.js knockout-2.0


    【解决方案1】:

    您可以尝试在 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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多