2015-04-15 92 views
0

我正在尝试在j Query查询插件中使用Require JS和Handlebars,但我得到的只是“把手未定义”。把手正在正确加载。RequireJS和把手 - 把手未定义

我的配置:

require.config({ 
    baseUrl: "static/js/lib", 
    paths: { 
     "jquery": "jquery-1.10.2.min", 
     "handlebars": "handlebars-v3.0.1", 
    }, 
    shim: { 
     "jquery.myplugin": { 
     deps: ["handlebars"] 
     } 
    } 
}); 

,并要求该插件:

require(["jquery"], function(){ 

    if($('[data-init="myplugin"]').size() > 0){ 
     require(["jquery.myplugin"], function(){ 
     $(function(){ 
      Handlebars.compile("<a></a>"); // This throws Handlebars is undefined 
     }); 
     $('[data-init="myplugin"]').myplugin(); 

     }); 
    } 

}); 

然后,我想用这个插件内把手。我如何将Handlebars传递给我的插件,以便我可以编译模板? (在脚本标记中)

+0

test in console require('handlebars')。compile(“”)是对的吗? –

回答

1

如果您想要定义句柄,则需要将句柄设置为依赖项。例如,你可以改变的第一行是:

require(["jquery", "handlebars"], function($, Handlebars){ 

另外,如果在那里jquery.myplugin由自己制作或编辑文件时,你应该修改它来调用define()而不是使用垫片配置的。如果这不是一个选项,你可能可以添加jquery作为依赖到shim配置。然后,您只能进行一次具有全部三个依赖关系的需求调用。