2016-09-27 9 views
-2

必要のJsを要求jQueryの依存関係のエラーは、私はとjQueryの依存関係スクリプトの読み込みに直面していますJS

私はjQueryのプラグイン、jQueryのライブラリおよび2つのモジュールのjs

資産> JS>ベンダー> jQueryのライブラリ、 を持っています資産> JS> apps.js、pageTop.js、categoryJS.js

マイapps.js:

require.config({ 
    'baseUrl':'assets/js', 

    'paths':{ 

     'jQuery':'vendor/jquery-1.11.2.min', 
     'viewportSize':'viewportSize-min', 
     'isoTopFilter':'isotope.pkgd.min', 
     'categoryJS' :'categoryJS' 

    }, 

    shim:{ 

     'jQuery': { 
      'exports':'$' 
     }, 

     'viewportSize' :{ 
      deps:['jQuery'] 
     }, 

     'isoTopFilter':{ 
      deps:['jQuery'] 
     }, 

     'pageTop':{ 
      deps:['jQuery'] 
     }, 

     'categoryJS':{ 
      deps:['jQuery'] 
     } 
    } 
});//require.config 

define(['jQuery','viewportSize','isoTopFilter','pageTop','categoryJS'], function($, pageTop, categoryJS) { 

$(function() { 
pageTop.alertProduct(); 
categoryJS.categorySlider(); 
}); 
}); 

と私のpageTop.js

define([],function(){ 
    return { 

    alertProduct: function(){ 
    alert('I am module2'); 
    return true; 
    } 

    } 

}); 

マイcategoryJs.js

define([],function(){ 
    return { 

    categorySlider: function(){ 
    alert('I am module2'); 
    return true; 
    } 

    } 

}); 

スクリプトは、いくつかのいずれかが、私はすべての手段によって

答えて

1

を試してみました、私を助けてくださいすることができ、エラー

Uncaught TypeError: Cannot read property 'alertProduct' of undefined 

を取得し、ロードされていませんあなたは持っています:

define(['jQuery','viewportSize','isoTopFilter','pageTop','categoryJS'], 
     function($, pageTop, categoryJS) 

依存関係のリストと引数のリストを見てください。 pageTopは第2引数であるため、viewportSizeモジュールの値を取得します。依存関係にリストされている各モジュールは、コールバックに渡されたであり、依存関係に現れる順序と同じ順序で渡されます。あなたはこれを行うことができますisoTopFilterviewportSizeの値を必要としませんと仮定:

define(['jquery','pageTop','categoryJS','viewportSize','isoTopFilter'], 
     function($, pageTop, categoryJS) 

また、

  • jQueryのは、そう、あなたはそれのためshimを設定することはできませんdefineを呼び出します。 (ほとんど無視されます)。あなたが設定したshimを削除する必要があります。

    自分のモジュールと同じです。 defineを呼び出し、依存関係のリストを設定する場合は、依存関係をdefineに渡します。これらのモジュールにはshimを設定しないでください。 shimは、defineを呼び出さないコード専用です。

  • jQueryハードコードのモジュール名はjqueryなので、jqueryをすべて小文字にする必要があります。 (詳細here。)pathsjQueryの代わりにjqueryに変更してください。

関連する問題