0

绑定函数在 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?
    }

}
4

1 回答 1

1

是的,一切都会同步更新。是的,getDeliveryNote将始终包含您设置的数据self.orders(data);

您可以考虑在ko.computed此处使用 a ,这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

于 2015-09-12T16:17:02.427 回答