사용자가 PageDown 단추 모음을 사용하여 편집기 텍스트를 변경할 때 녹아웃 모델을 업데이트하는 데 문제가 있습니다. 타이핑, 붙여 넣기 또는 커팅은 잘 작동하지만 버튼 막대 액션은 그렇지 않습니다.버튼 막대를 사용할 때 PageDown 편집기가 녹아웃 값 업데이트를 트리거하지 않는 이유는 무엇입니까?
나는 onPreviewRefresh
에 hook
을 추가하려고 시도했지만 편집인에게 결코 문제가되지 않습니다.
여기에 문제가있는 Fiddle이 있습니다. test
을 편집기에 입력하면 test
이 미리보기 섹션에 표시됩니다. 그러나 편집기에 test
을 입력 한 다음 메뉴 모음을 사용하여 test
을 굵게 표시하면 다른 문자를 입력 할 때까지 미리보기 섹션에이 업데이트가 표시되지 않습니다.
var ME = {};
ME.MarkdownConverter = Markdown.getSanitizingConverter();
ME.MarkdownCounter = 0;
ko.bindingHandlers.markdownEditor = {
init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
++ME.MarkdownCounter;
// Create the elements needed for a new PageDown editor.
$(element).append($('<div id="wmd-button-bar-' + ME.MarkdownCounter + '" class="wmd-button-bar"></div>'));
$(element).append($('<textarea id="wmd-input-' + ME.MarkdownCounter + '" class="wmd-input"></textarea>'));
// Make sure the textarea is properly binded up so that the view model is updated.
var newBindings = { textInput: valueAccessor };
ko.applyBindingAccessorsToNode($('#wmd-input-' + ME.MarkdownCounter)[0], newBindings, viewModel);
// Create the editor and apply to the new elements ensuring that we detect all
// changes from the wmd-button-bar.
var editor = new Markdown.Editor(ME.MarkdownConverter, "-" + ME.MarkdownCounter);
editor.hooks.chain("onPreviewRefresh", function() {
var value = valueAccessor();
debugger;
value($('#wmd-input-' + ME.MarkdownCounter).val());
});
editor.run();
return { controlsDescendantBindings: true };
}
};
를 참조하십시오 /jsfiddle.net/uvL85909/ 원래 코드가 IE10에서 작동하는 방식으로 – nemesv