Require.js - 异步获取 google.maps 命名空间

发布于 2025-01-04 05:52:04 字数 752 浏览 2 评论 0原文

goog 插件对于解决我的问题似乎有点笨重,所以我自己编写了一个插件使用 Google AJAX API 加载器加载 Google 地图:

define(function() {
  return {
    load : function(name, req, onLoad, config) {
      if (config.isBuild) {
        onLoad(null);
      } else {
        req(['async!http://www.google.com/jsapi?key=abcdefg'], function() {      
          google.load('maps', '2', {
            'other_params': 'sensor=true',
            'callback': onLoad
          });
        });
      }
    }
  };
});

然后我可以像这样返回 google.maps 命名空间:

define(['gm!'], function() {
    return google.maps;
  } 
);

一切正常,但我想知道:是否有更简洁的方法(除了使用 goog/custom 插件)来获取命名空间?

goog plugin seemed a bit to bulky for solving my problem, so I hacked up my own in order to load Google Maps using Google AJAX API loader:

define(function() {
  return {
    load : function(name, req, onLoad, config) {
      if (config.isBuild) {
        onLoad(null);
      } else {
        req(['async!http://www.google.com/jsapi?key=abcdefg'], function() {      
          google.load('maps', '2', {
            'other_params': 'sensor=true',
            'callback': onLoad
          });
        });
      }
    }
  };
});

I can then return google.maps namespace like this:

define(['gm!'], function() {
    return google.maps;
  } 
);

Everything works fine, but I wonder: is there a more concise way (besides using goog/custom plugin) to get the namespace?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文