【问题标题】:require shim setup- jquery.flot/jquery.flot.selection需要垫片设置 - jquery.flot/jquery.flot.selection
【发布时间】:2016-11-28 04:18:11
【问题描述】:

所以我正在使用 jquery.flot 和 jquery.flot.selection 并且由于 define({... 异步加载模块我遇到了问题,因为选择插件试图将自己推入 $.plot.plugins (由 jquery.flot 创建),但此时 $.plot.plugins 仍未定义。

我发现 require.config 中的“shim”参数应该可以帮助我解决这个问题,但我没有运气...... 所以这里是破败... jquery.flot 创建 $.plot jquery.flot.selection 将自身添加到 $.plot.plugins

我试过的……

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
...

我该怎么办???

【问题讨论】:

  • 原来我使用的是 RequireJs 1.0.4,所以我不能依赖 shim...我该怎么办?
  • Shim 的灵感来自 Use.js,它是 1.x 的插件 - tbranyen.com/post/…
  • 太棒了!所以我将此添加到我的插件“define(["jquery","lib/jquery.flot","lib/use!lib/jquery.flot.selection"]," 并将其添加到我的本地 require "paths:{ 。 ..使用:'../../../../otherDirec/src/main/webapp/js/lib/use'},使用:{“../../../../otherDirec /src/main/webapp/js/lib/jquery.flot.selection":{ deps:["使用!../../../../otherDirec/src/main/webapp/js/lib/jquery .flot"] } }" 并且我仍然收到一条错误消息,提示模块'lib/jquery.flot.selection'未定义或没有use 配置。确保它存在,添加use 配置,或者不要'不要使用 use! 就可以了
  • 我应该关闭它并打开另一个关于解决 use.js 设置问题的主题吗?
  • 可能会更简单,等你有我去看看

标签: javascript requirejs flot shim


【解决方案1】:

对于将来碰巧遇到这种情况的任何人,RequireJS 在诊断问题时可能有点不透明。 Here's RequireJS 2 的工作示例,带有 jquery.flot 和 jquery.flot.selection,没有使用模块。

很难说这个例子和上面的问题有什么不同,因此不透明!

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);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-24
    • 2014-09-09
    • 1970-01-01
    • 2015-03-14
    • 2016-11-27
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    相关资源
    最近更新 更多