除了使用他们在文档中所说的内容之外,还有办法扩展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"});
我更喜欢直接从对象上调用它(因为我正在使用typescript,所以使用intellisense),但我无法找到以JQuery
的方式访问构造函数的位置。
(function ($) {
$.fn.foo = function () {
};
})(jQuery);
那么我可以称之为$().foo();
。
有什么想法吗?
答案 0 :(得分:1)
您可以使用文档中所述的ko.subscribable
“模式”向任何fn
添加自定义函数:Adding custom functions using "fn"
因此,您可以添加附加功能,例如ko.observableArray
:
(function (ko) {
ko.observableArray.fn.foo = function () {
//...
};
})(ko);
或者只是简单地不使用立即执行的函数:
ko.observableArray.fn.foo = function() {
//..
}