2013-07-03 141 views
2

除了使用他們在文檔中說的內容外,是否有擴展KnockoutObservableAny的方法?擴展Knockoutjs對象

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();

任何想法?

回答

1

您可以使用,如文檔中描述的fn「模式」添加自定義功能,任何ko.subscribable

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

Adding custom functions using "fn"

所以,你可以用你的額外的功能,例如添加到ko.observableArray或者僅僅是不使用立即執行的功能:

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