我有两个绑定到他们自己的observable的输入。两者都有一个启动ajax调用的订阅功能。还有一些其他字段将从ajax结果中填写。我希望能够在输入companyName时获取数据。我还希望在输入cardNumber时获取companyName(以及更多),但给companyName一个值将触发其subscibe函数,该函数将启动另一个ajax调用。我想防止这种情况发生。当observable被设置时防止从调用订阅中敲出
cardNumber = ko.observable();
companyName = ko.observable();
cardNumber.subscribe(function() {
getDataFromCardNumber(cardNumber());
});
companyName.subscribe(function() {
getDataFromCompanyName(companyName());
});
getDataFromCardNumber = function (cardNr) {
$.ajax({
type: 'GET',
data: { number: cardNr },
url: '/Home/GetCardInfo',
success: function (data) {
companyName(data.Company.CompanyName);
//some other fields
}
});
};
//getDataFromCompanyName(name) contains another ajax call to fill out some other fields aswell
可写计算函数是我正在寻找的。这帮助我解决了我的问题:) – Sindre