在Meteor中,如何在用户使用特定外部服务登录时仅加载javascript?

时间:2014-09-15 05:57:50

标签: javascript meteor google-api-js-client

我真正需要的是在用户使用Google服务登录时为javascript加载google apis客户端库。如果用户使用密码或其他外部服务登录,则不会加载库。

这有可能吗?

感谢。

2 个答案:

答案 0 :(得分:1)

如果您想在用户登录后从外部URL加载库,您可以尝试这样的操作(将其放在客户端代码中的任何位置):

Tracker.autorun(function(c) {
  var user = Meteor.user();

  // replace this with the appropriate check for a google account
  if (user && user.profile && user.profile.isGoogle) {
    // stop the autorun now that the user is logged in
    c.stop();

    // load the api library
    $.ajax({
      url: '//url-to-fancy-google-api.google.com',
      dataType: 'script',
      cache: true
    });
  }
});

答案 1 :(得分:0)

可以使用anti:modules包。首先将其添加到应用程序:

meteor add anti:modules

然后在项目中创建/layers文件夹,并将可选文件放在其子文件夹中:

/
  layers
    googleUser
      someFile.module.js
      anotherFile.module.js
      ...

然后在您的代码中创建一个全局模块:

theApp = Module('$global').as('myApp');

并在必要时加载:

theApp.require('googleUser', function () {
  console.log('googleUser code loaded');
});