0

私はRequirejsでATMにかなり行き詰まっています。必要なファイルからアクセスできません。

私はあなたに私のコードを見せて、あなたは問題を見るでしょう:

index.html :

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

boot.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']);

これでOKです。

home.js :

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

init.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 は "scripts" フォルダーです。「requirejs.config」にプロパティを追加します。

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

これで、requirejs は、scripts フォルダーへの相対パスからコードをロードする必要があることを認識します。

詳細については、このドキュメントを参照してください。

また、次のように定義するだけでオブジェクトを返すことができます。

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