2013-07-03 1 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() { 
    //.. 
}