2

この質問で説明されているのと同じ問題がありますが、正しい答えはないようです。

「loadImages」ライブラリをrequire.jsでロードしようとしていますが、これを取得します

キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にはメソッド 'imagesLoaded' がありません

これが私のページのスクリプトです:

require(['./js/common'], function(common) 
{
    require(['home/main-home']);
});

私のcommon.js

requirejs.config({
    baseUrl: './js',
    paths: {
        jquery : 'libs/jquery/jquery-2.0.3.min',


        eventie  : 'libs/eventie/eventie',
        eventEmitter  : 'libs/eventEmitter/eventEmitter.min',
        imagesLoaded  : 'libs/imagesLoaded/imagesloaded.pkgd.min',

        masonry  : 'libs/masonry/masonry.pkgd.min',
        wall : './wall/wall',
        underscore  : '../libs/underscore/underscore-min',
        backbone : '../libs/backbone/backbone-min',
    },
    shim: {

        jquery : {
            exports : '$'
        },

        imagesLoaded : {
            deps : ['jquery', 'eventie', 'eventEmitter']
        },

        masonry : ['jquery'],
        wall : ['masonry', 'imagesLoaded'],

        backbone : {
            deps : ['jquery', 'underscore'],
            exports : 'Backbone'
        },

        underscore : {
            exports : '_'
        }

    }
});

これは、imagesLoaded ライブラリを使用したい私の main-home.js です。

define([
  'wall'
], 
function(Wall){

  $(function() 
  {
      $('#photos').imagesLoaded( function(){}); // ERROR
  });

  return true;
});

imagesLoaded doc には、require.js に関する小さなパラグラフがありますが、これはよくわかりません。それらのライブラリもロードしようとしましたが、何も変更されていません。

// Install imagesLoaded and its dependencies
// Update your RequireJS paths config so it can find those modules
requirejs.config({
  paths: {
    "eventie": "bower_components/eventie",
    "eventEmitter": "bower_components/eventEmitter"
  }
});

彼らはここでそれについて話しているようですhttps://github.com/desandro/imagesloaded/issues/68、しかし私は何をすべきか本当にわかりません。

私のページがロードしているjsファイルは次のとおりです。

ここに画像の説明を入力

imagesLoaded がロードされていることがわかります...なぜ このエラーがまだ発生するのですか?

4

1 に答える 1

1

この jsfiddle は動作します。

モジュールに有効なモジュール ID を与えるために、ImagesLoaded JS を ( gistとして) 編集しました。

検索する:

// --------------------------------------------------
// ADDED A MODULE ID
// --------------------------------------------------

imagesLoaded3 つの変更のコードで ( 、eventEmitter/EventEmitterおよびeventie/eventieモジュールを定義するため)。

ImageLoaded JS ファイルには既に他の 2 つのモジュールが含まれているため、これ以上のパス/シムは必要ありません。

HTML

<div id="photos"></div>
<script>
require = {
    paths: {
        "jquery": "http://code.jquery.com/jquery-2.0.3",
        "imagesLoaded": "https://rawgithub.com/gitgrimbo/6451492/raw/f26e23d7a180ee23fd3dea3b0b152dbf523854a1/ImageLoaded-mod"
    }
};
</script>
<script src="http://requirejs.org/docs/release/2.1.8/comments/require.js"></script>

JS

require(["jquery", "imagesLoaded"], function($, imagesLoaded) {
    console.log($.fn.jquery);
    console.log(imagesLoaded);
    $('#photos').imagesLoaded(function() {
        console.log("something");
    });
});

出力

2.0.3
ImagesLoaded( elem, options, onAlways )
something
于 2013-09-05T15:29:47.637 に答える