【发布时间】:2014-07-26 18:46:22
【问题描述】:
我正在管理面板上显示选定用户的原始 JSON。选定的用户会从 Session 键中被动地更改。我希望每次用户更改时由 Prism.js 突出显示 JSON 语法,但目前 Prism 仅在我的模板被渲染时运行一次,并且在节点被移除并被 Blaze 替换后不会重新运行。每次 Session 键更改时重新突出显示语法的最佳方法是什么?
详细说明:
我从模板助手中获取用户:
Template.admin_user_detail.helpers({
selectedUser: function(){
var item = Session.get("adminItem");
return item && Users.findOne(item);
}
});
我在模板中显示它的 JSON 如下:
UI.registerHelper("adminItemAsJSON", function(object){
return JSON.stringify(object, undefined, 4);
});
Prism 然后第一次正确运行以突出显示它,如下所示:
Template.admin_user_detail.rendered = function(){
var
self = this,
code = self.find('code');
Prism.highlightElement(code);
}
当我运行Session.set("adminItem") 时,Prism 不会再次运行,这对我来说很有意义,因为 Blaze 不会删除并重新渲染模板。那么我需要将Prism.highlightElement() 放在哪里?它是Deps.autorun() 还是其他模式,有人可以用一些示例代码指出方向吗?
其他一切都很好,包括反应性部分。非常感谢。
【问题讨论】:
标签: meteor