2

KnockoutObservableAny除了使用他们在文档中所说的内容之外,还有其他方法可以扩展吗?

ko.extenders.logChange = function(target, option) {
    target.subscribe(function(newValue) {
       console.log(option + ": " + newValue);
    });
    return target;
};

调用者:

this.firstName = ko.observable("Bob").extend({logChange: "first name"});

我宁愿直接从对象中调用它(使用智能感知,因为我使用的是打字稿),但我无法弄清楚在哪里可以访问构造函数JQuery

(function ($) {
    $.fn.foo = function () {
    };
})(jQuery);

所以我可以这样称呼它$().foo();

有任何想法吗?

4

1 回答 1

1

您可以ko.subscribable使用fn文档中所述的“模式”将自定义函数添加到任何函数:使用“fn”添加自定义函数

所以你可以添加你的附加功能,例如ko.observableArray

(function (ko) {
    ko.observableArray.fn.foo = function () {
    //...
    };
})(ko);

或者只是不使用立即执行的功能:

ko.observableArray.fn.foo = function() {
  //..
}
于 2013-07-03T13:55:56.970 回答