1
什么是在Knockout中管理多个触发器的最佳方式。当阵列中的游客人数发生变化或所选组类型发生变化时,下面的相关observable将触发触发器。KnockoutJS - 管理多个触发器
var ajaxTrigger = ko.dependentObservable(function() {
this.selectedGroupType();
this.travellers();
alert("triggered");
}, viewModel);
但是我有selectedGroupType订阅,可以改变旅客的数量:我的位置是
viewModel.selectedGroupType.subscribe(function(groupType) {
switch(groupType)
{
case "Individual":
// changes traveller quantity to 1
break;
case "Couple":
// changes traveller quantity to 2
break;
case "Family":
// changes traveller quantity to 3
break;
default:
break;
}
}, viewModel);
所以,如果我做出改变selectedGroupType那么它有可能,我会如果旅行者数量发生变化,可获得第二个触发器
但是我只想在组队类型和旅客数量都决定之后触发一次通话。
最好的方法是什么?
感谢马克。我会下载最新版本。 – BrightonDev
我试着添加一个1000ms的节流阀,现在只要页面渲染,然后在1秒后再次发出一次Ajax请求。这很奇怪,因为Ajax请求的调用是由依赖的observable创建的,即使我删除了所有对其他observable的引用,AJAX请求仍然被触发:var ajaxTrigger = ko.dependentObservable(function(){ GetPrices(); } ).extend({throttle:1000}); – BrightonDev
我知道这是非常古老的,但是为了帮助任何发生在这个问题上的人,使用ko.dependentObservables(现在称为ko.computed),他们在第一次绑定时得到评估,找出其中的可观察对象。我最终在一个非常相似的情况下做了一个初始化变量,它在viewModel的底部和ko.computed调用中设置为true,我想绑定的observables但是在调用之前检查以确保初始化为true ajax,所以我在初始评估期间不会触发ajax调用。 – MHollis