0

我很喜欢 Requirejs 的 ATM。我无法从我需要的文件中访问。

我让你我的代码,你会看到问题:

索引.html

<script src="libs/jquery/requirejs.js"></script>
<script src="js/boot.js"></script>
<script src="home/init.js"></script>

引导.js

require.config({
    paths: {
        jquery: 'libs/jquery/jquery',
        home: 'home/home'   
    }
});

// my main module
define('common', [
    'jquery'
], function($){

  $('body').append('boot loaded ');

  return { }
});

// require the main module
require(['common']);

在这里,没关系。

主页.js

// simple object
var home = {
    syl: 88
}

初始化.js

// home module
define('init_home', [
    'jquery',
    'home'
], function($, home){

  $('body').append('init loaded');

  return home;
});

require(['init_home'], function(home) {
  console.log(home.syl); // Uncaught TypeError: Cannot read property 'syl' of undefined 
});

检查错误。

如何访问我的 home.js?请问语法是什么?

任何提示都值得赞赏。

感谢和问候。

4

1 回答 1

0

据我所知,您尚未设置基本 URL。Requirejs 加载相对于基本 URL 的所有文件。

我建议你重构你的代码路径,让你的所有 JS 文件都驻留在一个公共文件夹中,例如:

<script src="scripts/libs/requirejs.js"></script>
<script src="scripts/boot.js"></script>
<script src="scripts/home/init.js"></script>

如您所见,现在基本 URL 是“脚本”文件夹。向“requirejs.config”添加一个属性:

require.config({
    baseUrl: "scripts",
    .....
    .....
});

现在 requirejs 知道必须从相对于脚本文件夹的路径加载代码。

阅读此文档以获得进一步说明。

此外,您可以通过简单地定义返回一个对象:

define("module_name", {
    name: "value"
});
于 2013-01-08T10:31:29.627 回答