绑定数据同步或异步
Binding data synchronous or asynchronous
绑定函数在knockout.js同步吗?
在此示例中,我会始终在我的 getDeliveryNote
函数中获取数据吗?
function myModel(){
var self = this;
self.orders = ko.observable();
self.selectAndClick = function(data){
self.orders(data);
self.getDeliveryNote();
}
self.getDeliveryNote(){
console.log(self.orders()); // would i ALWAYS get the data here?
}
}
是的,一切都会同步更新。是的,getDeliveryNote
将始终包含您使用 self.orders(data);
设置的数据
你可以考虑在这里使用 ko.computed
这样 deliveryNote
依赖于 orders
,那么你根本不需要调用 getDeliveryNote
。
例如
self.deliveryNote=ko.computed(function(){
//...using orders() inside this function will cause 'deliveryNote'
//...to be reevaluated when the value of 'orders' changes
//...(ie this function will be called
//...when orders(data) is called with a different 'data' from last time)
return orders().deliveryNote() // for example
});
现在您可以使用 deliveryNote()
,它将始终与订单中的内容同步。
那么您也不需要 selectAndClick
函数,因为您将直接绑定到 orders
。
绑定函数在knockout.js同步吗?
在此示例中,我会始终在我的 getDeliveryNote
函数中获取数据吗?
function myModel(){
var self = this;
self.orders = ko.observable();
self.selectAndClick = function(data){
self.orders(data);
self.getDeliveryNote();
}
self.getDeliveryNote(){
console.log(self.orders()); // would i ALWAYS get the data here?
}
}
是的,一切都会同步更新。是的,getDeliveryNote
将始终包含您使用 self.orders(data);
你可以考虑在这里使用 ko.computed
这样 deliveryNote
依赖于 orders
,那么你根本不需要调用 getDeliveryNote
。
例如
self.deliveryNote=ko.computed(function(){
//...using orders() inside this function will cause 'deliveryNote'
//...to be reevaluated when the value of 'orders' changes
//...(ie this function will be called
//...when orders(data) is called with a different 'data' from last time)
return orders().deliveryNote() // for example
});
现在您可以使用 deliveryNote()
,它将始终与订单中的内容同步。
那么您也不需要 selectAndClick
函数,因为您将直接绑定到 orders
。