我正在使用 knockout.js 基于 Ajax 调用动态插入值。其中一个值 content.front 是可以包含 MathJax 表达式的 utf8 文本。我试图弄清楚每次 knockout.js 更新 div 时如何让 MathJax 呈现表达式。我不能让它工作,我不知道为什么。这是JavaScript:
var ViewModel = function(data) {
var self = this;
self = ko.mapping.fromJS(data, {}, self);
self.content.back.subscribe( function() {
MathJax.Hub.Queue(["Typeset", MathJax.Hub,"preview-back"]);
});
};
和哈姆雷特:
<div .wrap>
<div .tab-content>
<div .tab-pane #preview-back data-bind="text: content.back">
(这个 Hamlet 呈现的 html 是有效的 html 5...)
就目前而言,knockout.js 正在将文本呈现在适当的 div 中。当我更改文本时,div 也会更改。MathJax 似乎被触发了——弹出了“100% 排版”的小弹出窗口。但是 div 并没有改变。