Knockout.js发回服务器以更新模型

Ale*_*ecu 6 javascript knockout.js

我知道你可以在knockout.js中创建2路绑定.一旦您更改视图,这将在javascript中更改模型.我需要一种方法来通知并将此更改发送回服务器.所以我非常需要在服务器上发帖子.我怎样才能做到这一点?

我的意思是,我不知何故需要附加一个事件处理程序,所以每当我更改一次模型时它会自动将更改发回给服务器.

dan*_*wig 14

function MyViewModel() {
    var self = this;
    self.value1 = ko.observable();
    self.value2 = ko.observable();
    ko.computed(function() {
        $.ajax({
            url: '/path/to/server/endpoint',
            type: 'POST',
            data: {
                value1: self.value1(),
                value2: self.value2()
            }
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

您不应该为每个viewmodel属性单独"手动订阅".只需定义一个ko.computed.所有ko.computeds都会自动通知他们所依赖的可观察对象的变化.在上面的代码中,计算取决于value1和value2 observables(在datajQuery $.ajax函数的参数中).只要observable的值发生更改,包装ko.computed函数就会执行,并将新值提交给服务器.