我有或多或少简单的 html 页面,其中包含由 MathJax 呈现的数学公式。我现在正在使用 AngularJS 构建一个新系统,从 Angular-seed 开始。所有单独的 html 文件都作为部分文件包含在内。正如预期的那样,仅当我刷新页面时,MathJax 才会正确呈现,当我通过框架加载它时,数学表达式不会呈现。
我必须在某个地方运行这个函数:
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
Run Code Online (Sandbox Code Playgroud)
它应该在每次加载部分后运行,以正确呈现公式。我怎样才能做到这一点?
中号
小智 0
在与您描述的相同问题苦苦挣扎之后,我找到了一个快速但有些不优雅的解决方案:包含MathJax.Hub.Queue(["Typeset",MathJax.Hub]);. 例如,这是我的控制器的一部分,我想在更新范围后重新排版 MathJax:
function selectLesson(name){
$scope.page = name.Path;
if(!$mdMedia('gt-md')){
$scope.toggleSideNav('left');
}
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}
Run Code Online (Sandbox Code Playgroud)
因为MathJax是异步加载的(查看MathJax文档),运行时MathJax.Hub.Queue(["Typeset",MathJax.Hub]);会等到页面重新加载才能重新排版页面。再次运行相同的命令会立即进行排版。
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |