当原始内容通过jQuery更新时,我如何告诉PageDown更新其预览
How can I tell PageDown to update its preview when the raw content is updated via jQuery?
JSFiddle:http://jsfiddle.net/92z35/2/
我有一个Pagedown编辑器,它目前运行得很好,除了少数情况下我必须用程序插入一些内容。如果插入然后键入,预览将更新。但如果我只是插入,预览将保持不变。
我错过了什么?
代码:
var converter = Markdown.getSanitizingConverter();
converter.hooks.chain("preBlockGamut", function (text, rbg) {
return text.replace(/^ {0,3}""" *'n((?:.*?'n)+?) {0,3}""" *$/gm, function (whole, inner) {http://jsfiddle.net/BcuLq/#run
return "<blockquote>" + rbg(inner) + "</blockquote>'n";
});
});
var editor = new Markdown.Editor(converter);
ko.bindingHandlers.wysiwyg = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
editor.hooks.chain("onPreviewRefresh", function () {
$(element).change();
});
editor.run();
}
};
var ViewModel = function(first, last) {
this.firstName = ko.observable(first);
this.lastName = ko.observable(last);
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);
this.appendText = function(){
$("#wmd-input").val($("#wmd-input").val() + '@')
}
};
ko.applyBindings(new ViewModel("Planet", "Earth"));
首先,向自定义绑定添加一个update
处理程序,该处理程序会在可观察对象更改时刷新预览。一旦你做到了,通过改变可观察的而不是直接改变元素的val
来进行所有的程序更改;这样Knockout将检测到值已更改,并调用新的update
处理程序,该处理程序将告诉编辑器刷新。
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 如何告诉MathJax对下标使用替代语法
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 我如何告诉javascript立即更新DOM
- 当原始内容通过jQuery更新时,我如何告诉PageDown更新其预览
- 我正在使用 $scope.$apply 在 http 调用后更新对象数组.谁能告诉我正确的方法
- 我想更新一个.json文件,请告诉我如何去做