Meteor - 如何为特定用户加载JS库?

4
我正在设计一个带有图形等元素的管理界面,并使用Highcharts库(140kb)。 我希望仅为管理员用户加载此文件。最佳方法是什么? 我刚看到我们可以使用Iron-Router有条件地加载JavaScript,但我不喜欢在路由器内处理这种事情的想法,如下所示:
Router.map ->
  @route 'admin',
    path: '/admin'
    template: 'admin'
    action: ->
      $.getScript '/js/moment.min.js', (data, textStatus, jqxhr) ->
        if jqxhr.status is 200
          @render()

注意: 我写了一篇小博客文章关于如何在Meteor中仅为特定用户加载库。


为什么相同的技巧在常规的Meteor JS文件中不起作用? - Christian Fritz
@ChristianFritz 因为即使不使用代码,所有代码仍将从线路发送。 OP正在寻求一种实际上不会发送数据的方法。 - Andrew Mao
是的,我认为唯一的解决方案是将文件放在公共目录中,以避免通过网络发送数据,并使用$.getScript()调用它,就像@ChristianFritz在下面解释的那样。 - Julien Le Coupanec
1个回答

3

这个(在客户端上)不起作用吗?

var loaded = false;
Deps.autorun(function() {
    if (!loaded && isAdmin(Meteor.userId())) {
        $.getScript("/js/moment.min.js");
        loaded = true;
    }
});

是的,它在客户端上可以工作。我会做类似的事情。谢谢。 - Julien Le Coupanec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接