关于KnockoutJS的另一个完整的Noob问题我害怕......
我理解Observables功能,因为如果viewmodel发生了变化,那么绑定到viewmodel的UI元素也会发生变化以反映这一点。
因此UI正在对视图模型做出反应。
在我的应用程序中,要更改viewmodel,我需要对服务器进行AJAX调用。如何将该服务器请求绑定到UI中的更改。
通常我只使用jquery
$("[#HolidayDestination").change(function () {
// Make Ajax call
});
我是否仍然继续以KnockoutJS的方式工作?
答案 0 :(得分:3)
有几种方法可以处理这种情况,但基本的想法是,您希望AJAX请求的触发器来自对视图模型的更改。
如果您想根据对单个observable的更改触发AJAX请求,那么manual subscription是一个不错的选择。
如果要根据对多个可观察对象的更改来触发它,则可以将其包装在dependentObservable中。在这种情况下,dependentObservable甚至不需要返回值。你只是不会在你的UI中绑定它,它将纯粹用作触发器。
var trigger = ko.dependentObservable(function() {
//access any observable that you want to trigger re-evaluation. You don't even need to do anything with their values.
valueOne();
valueTwo();
valueThree();
//trigger AJAX
});