【问题标题】:Using jQuery plugins使用 jQuery 插件
【发布时间】:2012-11-11 16:22:15
【问题描述】:

我正在尝试在我的项目中使用一些 jQuery 插件(我正在使用 RequireJS)。但是我不明白该怎么做。我试图遵循这一点:http://requirejs.org/docs/api.html#config-shim 在我理解之后,它设置了数组内部内容的依赖关系。我想我可以在一个模块中做到这一点:

define(['ui'], function($) {

}

但是它不起作用。我错过了什么? 这是来自我的 require.config:

shim: {
        'ui': {
            'deps': ['jquery']
        },
        'tools': {
            'deps': ['jquery', 'ui']
        }
}

和路径;

'paths': {
    'jquery': 'lib/jquery/jquery',
    'ui': 'jquery/jquery-ui.min',
    'tools': 'jquery/jquery.tools.min',            
},

【问题讨论】:

  • 在配置中为 ui 和工具定义了路径
  • 啊,它似乎工作正常,您必须指定依赖项并正常使用$

标签: javascript jquery jquery-ui requirejs require


【解决方案1】:
requirejs.config({
'paths': {
    'jquery': 'lib/jquery/jquery',
    'ui': 'jquery/jquery-ui.min',
    'tools': 'jquery/jquery.tools.min',            
},
    shim:{
        'ui': {
            'deps': ['jquery'],
            // exports :'ui'   As they are jquery plugins they will not require exports
        },
        'tools': {
            'deps': ['jquery', 'ui'],
             //exports : 'tools'
        }
} 
});

define(['jquery'], function($) {

}

【讨论】:

  • 你能解释一下shim中的exportsinit吗?
  • exports 用于使模块名称可用于其他依赖它的模块。它用于非 amd 模块。 init 函数在模块名称被导出之前被调用。通常用于进行清理,例如调用 noConflicft() 以避免覆盖已经存在的模块名称
  • 我在哪里使用这些模块名称?是不是和definitions中的模块ID一样
  • 所以如果我用exports: 'test' 将导出添加到ui 那么我需要'测试'?但是为什么我要在依赖列表中指定ui,否则这也会改变吗?
  • 依赖列表中工具的 shim 内部仍然是 'ui',因为您只是要求在加载工具库之前加载它。
猜你喜欢
  • 2014-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多