Requirejs模块回调

Requirejs模块回调,requirejs,Requirejs,我被Requirejs卡死了。我无法从所需文件访问 我向您提供了我的代码,您将看到问题: index.html: <script src="libs/jquery/requirejs.js"></script> <script src="js/boot.js"></script> <script src="home/init.js"></script> require.config({ paths: {

我被Requirejs卡死了。我无法从所需文件访问

我向您提供了我的代码,您将看到问题:

index.html

<script src="libs/jquery/requirejs.js"></script>
<script src="js/boot.js"></script>
<script src="home/init.js"></script>
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']);
// simple object
var home = {
    syl: 88
}
// 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

<script src="libs/jquery/requirejs.js"></script>
<script src="js/boot.js"></script>
<script src="home/init.js"></script>
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']);
// simple object
var home = {
    syl: 88
}
// 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 
});
init.js

<script src="libs/jquery/requirejs.js"></script>
<script src="js/boot.js"></script>
<script src="home/init.js"></script>
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']);
// simple object
var home = {
    syl: 88
}
// 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 
});
检查错误

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

任何小费都很感激


谢谢,各位。

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

我建议您重新构造代码路径,以便所有JS文件都位于一个公共文件夹中,如:

<script src="scripts/libs/requirejs.js"></script>
<script src="scripts/boot.js"></script>
<script src="scripts/home/init.js"></script>
现在requirejs知道必须从相对于脚本文件夹的路径加载代码

请阅读此内容以进一步澄清

此外,只需定义以下内容,即可返回对象:

define("module_name", {
    name: "value"
});

“home.js”不应该返回一些东西,以便RequireJS可以在“init.js”中使用它初始化参数“home”?好的,Francois,那么如何编写my home.js以返回home对象?我现在无法进行测试,但它应该是这样的:“define(function(){var home={syl:88};return home;})”