javascript - 使用 requirejs 有选择地加载 AMD 模块

标签 javascript requirejs amd

我有一个用例,我必须根据某些条件加载 AMD 模块,以便使用 requirejs 定义另一个模块。

define(['module1'],
    function(module1)
    {
      /*some code*/

      if (condition1) {
        require(['module2'],
            function()
            {
                /*some code*/
            }
        )        
      }
      else {
         require(['module3'],
            function()
            {
               /*some code*/
            }
        )     
    }
    return someObject;
    });

我遇到了 this问题并对全局和本地 require 感到困惑。
以上做法是否正确?

最佳答案

您应该使用“本地”require。本地要求将确保模块相对于“父”模块进行解析,

define(["require", "module1"], function(require, module1) {
    require(['./relative/to/parent/not/necessarily/relative/to/baseUrl'], ...);

并且 URL 也相对于“父”模块进行解析。

define(["require", "module1"], function(require, module1) {
    require.toUrl('./relative/to/parent/not/necessarily/relative/to/baseUrl')

关于javascript - 使用 requirejs 有选择地加载 AMD 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15941904/

相关文章:

javascript - 通用 Javascript 语法查询

javascript - Angular js 自动完成搜索和链接

javascript - require 和 require 和有什么不一样

javascript - Dojo 类和静态函数

javascript - 使用带有 requireJS 的 Twitter Bootstrap - undefined 不是一个函数`

javascript - Google Chart 未渲染并显示 "Data table is not defined "

javascript - sails flash 验证不起作用

javascript - Requirejs函数返回错误

javascript - 在同一页面上使用 Browserify 和 RequireJS?

dojo - 更新 Dojo 提供