我试图在j Query插件中使用Require JS和Handlebars,但我得到的只是" Handlebars未定义"。把手正在正确装载。
我的配置:
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。如何将Handlebars传递给我的插件,以便我可以编译模板? (在脚本标签中)
答案 0 :(得分:1)
如果要定义把手,则需要将把手设置为依赖项。例如,您可以将第一行更改为:
require(["jquery", "handlebars"], function($, Handlebars){
此外,如果您创建或编辑jquery.myplugin
的文件,则应修改它以调用define()
而不是使用shim配置。如果这不是一个选项,你可以将jquery作为依赖项添加到shim配置中。然后,您只能进行一次具有所有三个依赖关系的require调用。