6

したがって、私は jquery.flot と jquery.flot.selection を使用しており、 define({... がモジュールを非同期的にロードするため、選択プラグインが $.plot.plugins (作成された $.plot.plugins) にプッシュしようとしているため、問題が発生しています。 jquery.flot による) しかし、その時点では $.plot.plugins はまだ定義されていません。

require.config の「shim」引数がこれに役立つはずですが、運がありません...ここに要約があります... jquery.flot は $.plot を作成し、jquery.flot.selection は $ にそれ自体を追加します.plot.プラグイン

私が試したこと...

shim:{
    'js/lib/jquery.flot':{
        exports:'$.plot'
    },
    'js/lib/jquery.flot.selection':{
        deps:['js/lib/jquery.flot']
    }
}

また

shim:{
    'js/lib/jquery.flot.selection':['js/lib/jquery.flot']
}

私のプラグインは次のようになります..

define(['jquery','lib/jquery.flot','lib/jquery.flot.selection'], function() {
(function($) {
    // jQuery plugin definition
.....

私も試しました

define(['jquery'],function(){
require[('js/lib/jquery.flot.selection'],function(){
//jQuery plugin definition
...

私は何をすべきか???

4

1 に答える 1

6

将来これに遭遇する人にとっては、問題の診断に関しては、RequireJS は少し不透明になる可能性があります。use モジュールを使用せずに、jquery.flot と jquery.flot.selection を使用した RequireJS 2 の実例を次に示します

この例と上記の質問の違いを伝えるのは少し難しいので、不透明です!

require.config({
    shim: {
        'jquery': {
            exports: '$'
        },
            'jquery.flot': {
            deps: ['jquery'],
            exports: '$.plot'
        },
            'jquery.flot.selection': {
            deps: ['jquery.flot']
        }
    },
    paths: {
        'jquery': '//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min',
            'jquery.flot': '//cdnjs.cloudflare.com/ajax/libs/flot/0.8.1/jquery.flot.min',
            'jquery.flot.selection': 'https://raw.github.com/flot/flot/master/jquery.flot.selection'
    }
});

require(['jquery', 'jquery.flot', 'jquery.flot.selection'], function ($) {
    // jQuery plugin definition
    console.log($.plot);
    $('#x').text($.plot.plugins);
});
于 2013-09-18T14:54:42.640 に答える