2017-05-31 156 views
0

我无法获取出口值当我导入外部链接 js文件(main.js)作为requirejs的依赖项时,请参阅代码。requirejs定义一个模块无法获得返回值

的console.log(米)//未定义

但我定义模块“T”作为在内部的依赖,它可以得到的返回值 ,看到的代码。

的console.log(n)的测试//

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
\t <meta charset="UTF-8"> 
 
\t <title>Document</title> 
 
</head> 
 
<body> 
 

 
    <script src="https://cdn.bootcss.com/require.js/2.3.3/require.min.js" ></script> 
 

 
\t <script type="text/javascript"> 
 
      define("t",["main"],function(m){ 
 
      \t console.log(m) //undefined 
 
      \t 
 
      \t return "test"; 
 
      \t 
 
      }); 
 
      require(["t"],function(n){ 
 
      \t console.log(n) //test 
 
      \t 
 
      }); 
 
     </script> 
 
</body> 
 
</html>

这里是main.js:

define("m",[],function(){ 
 

 
    return "test"; 
 
})

那么它有什么问题呢?

+0

因为当你是d在定义't'的时候,你并没有通过一个变量来代替'm'。 –

+0

如何在定义't'时如何通过变量,如果我将模块'm'更改为'main',它会工作。模块名称是否必须与文件名相同? 'define(“main”,[],function(){ return“test”; })' – user1841488

回答

0

定义您main.js模块这样,它应该很好地工作:

define([],function(){ 

    return "test"; 
}); 

你的HTML将是:

<!DOCTYPE html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Document</title> 
 
</head> 
 

 
<body> 
 

 
    <script src="https://cdn.bootcss.com/require.js/2.3.3/require.min.js"></script> 
 

 
    <script type="text/javascript"> 
 
    requirejs.config({ 
 
     baseUrl: '/', // set proper base path 
 

 

 
     paths: { 
 

 
     "main": "...path to main js...." 
 

 
     } 
 

 

 
    }); 
 

 
    define("t", ["main"], function(m) { 
 
     console.log(m) 
 

 
     return "test"; 
 

 
    }); 
 

 
    require(["t"], function(n) { 
 
     console.log(n) //test 
 

 
    }); 
 
    </script> 
 
</body> 
 

 
</html>

这里是一个工作pen

+0

Txs,它工作。有没有办法解决main.js而无需改变? – user1841488

+0

@ user1841488:如果你给模块一个与config中的名称相匹配的名称,它应该可以正常工作。即“主” –

+1

非常感谢,我终于解决了这个问题。 – user1841488

相关问题