首页 > 解决方案 > 淘汰赛可观察 - 在回调中传递额外的数据?

问题描述

我有一个复杂的对象,我将它包装在一个 KnockoutObservable 中,因此代码的各个区域都可以订阅并在该对象更改时收到通知。例如:

var myObj: KnockoutObservable<MyObj> = ko.observable(null).extend({ notify: 'always' });
...
// other code
myObj.subscribe(function(myObj: MyObj) {
    // myObj changed
});
...
myObj(myObjNew);

但是理想情况下,我想向所有观察者传递一个附加对象,其中包含有关复杂对象的确切更改的一些详细信息。例如:

var myObj: KnockoutObservable<MyObj> = ko.observable(null).extend({ notify: 'always' });
...
// other code
myObj.subscribe(function(myObj: MyObj, changed: any) {
    if (changed.field1) {
        // myObj.field1 changed
    }
});
...
myObj(myObjNew, { field1: 'a'});

有没有一种方法可以在设置 KnockoutObservable 时传递这样的附加信息,这样每个订阅者不仅可以获得最新值,还可以获得这些附加信息?

标签: typescriptknockout.js

解决方案


推荐阅读