내가 외부 텍스트 영역의 변화를 유발하는 자바 스크립트 라이브러리, 형식이 등변경 이벤트는 녹아웃 업데이트
그러나, KnockoutJS가 텍스트 영역에 값을 설정, 변경이 가치 때 트리거되지 않습니다 이벤트가 시작되지 않았습니다. Simplified Fiddle of my problem. Knockout이 내 텍스트 영역의 값을 업데이트 할 때 변경 이벤트를 실행할 수 있습니까?
내가 외부 텍스트 영역의 변화를 유발하는 자바 스크립트 라이브러리, 형식이 등변경 이벤트는 녹아웃 업데이트
그러나, KnockoutJS가 텍스트 영역에 값을 설정, 변경이 가치 때 트리거되지 않습니다 이벤트가 시작되지 않았습니다. Simplified Fiddle of my problem. Knockout이 내 텍스트 영역의 값을 업데이트 할 때 변경 이벤트를 실행할 수 있습니까?
강제로 변경 이벤트에 대한 작업을 시도하는 대신 기본 관찰 가능 항목에 대한 구독을 설정할 수 있습니다. 이처럼 : http://jsfiddle.net/EZC9E/1/
this.text.subscribe(function(newValue) {
alert('Text is changing to ' + newValue);
});
자바 스크립트 라이브러리를 변경, 당신이 사용자 정의 녹아웃이 바인딩으로 포장하는 것이 좋습니다 대신에. 어쨌든 특히 요소를 동적으로 생성/파괴하는 foreach
바인딩을 사용하는 경우 이미 라이브러리에 사용자 지정 바인딩을 사용해야 할 수도 있습니다.
사용자 정의 바인딩이 있으면 '변경'을 트리거 할 수있는 매우 편리한 장소가 있습니다.
ko.bindingHandlers.jQueryPluginFunctionCall = {
init: function (element, valueAccessor, allBindingsAccessor) {
// Apply jQuery plugin to textarea
$(element).jQueryPluginFunctionCall();
// Subscribe to the value binding of the textarea, and trigger the change event.
allBindingsAccessor().value.subscribe(function() {
$(element).trigger('change');
});
// Clean up jQuery plugin on dispose
ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
// This will be called when the element is removed by Knockout or
// if some other part of your code calls ko.removeNode(element)
$(element).jQueryPluginFunctionCall('destroy');
});
}
}
감사합니다. 나는이 해결책을 알고있다. 그러나, 나는이 목적을 위해 수정하고 싶지 않은 별도의 라이브러리를 사용하고 있습니다. –
솔직히 원하는 결과를 얻기위한 또 다른 방법을 찾을 수 없었기 때문에 결국이 솔루션을 사용했습니다. 그것은 내가 좋아하지 않는 라이브러리를 수정하는 것이었지만, 지금은 작동하며 이것이 가장 중요한 것입니다. –