我正在尝试使用淘汰赛,我想知道从网络的角度来看它是如何工作的:我在哪里可以看到从浏览器客户端到服务器以检索数据的“调用”?我的意思是:我曾经使用 Ajax 调用来填充表单、表格... => 我们可以看到对服务器的 ajax 调用。当我需要提交表单时也是如此:我可以看到 ajax 调用。这意味着我可以使用 Firefbug 进行调试并查看发送的参数/收到的响应,包括标头(请求/响应)。使用knout,表单中的数据由框架ko自动“绑定”。那么,有人知道它是如何工作的吗?电话是如何完成的?有没有办法“看到”数据流?
问问题
80 次
2 回答
1
它基于发布-订阅模式。每当有东西发生变化时,它都会通知它。
这里有一些关于它的信息http://msdn.microsoft.com/en-us/magazine/hh201955.aspx
于 2013-02-12T11:02:32.327 回答
1
从网络的角度来看,使用淘汰赛时没有任何变化。您仍然需要进行 AJAX 调用来填充您的视图模型,但它们在框架之外,而不是框架的一部分。这意味着您仍然可以在 AJAX 调用上设置断点并观察正在发送和接收的内容。
一个主要的代码偏离是您的网络调用现在可能存在于淘汰视图模型中。
var someVm = function(data) {
var self = this;
self.Id = ko.observable(data.Id);
// ...
self.getItems = function() {
// AJAX call here, now method on a vm
}
}
然而,正如 TJ Crowder 所指出的 - 淘汰的关键机制是将客户端视图模型绑定到用户界面,用于数据填充或单页应用程序中的可见性控制。网络是您必须处理的事情,但这不是淘汰赛的一部分。最有可能的是,您将对 AJAX 调用的位置进行一些小改动。
于 2013-02-12T11:09:03.447 回答