【发布时间】:2013-11-06 06:26:36
【问题描述】:
我正在尝试制作一个使用 jQuery 和 Handlebars 的模块
这是主文件:
require(['app', 'jquery', 'handlebars' ], function (app, $, handlebars) {
console.log('Running jQuery %s', $().jquery);
});
这是应用文件:
define(['jquery', 'handlebars'], function ($, hb) {
$(function() {
var source = $("#some-template").html();
var template = hb.compile(source);
var data = {...});
});
为什么它说 hb is not defined 但是当我删除所有依赖项时,它在使用 Handlebars 而不是 hb 时有效(这是正常方式)?
【问题讨论】:
-
注意:没有必要(并且通常会混淆)包含不使用且仅由子模块需要的模块的依赖项;在您的情况下, main 不需要把手(并且 jQuery 仅用于调试,对吗?)因此它不应在定义调用中列出。
-
@kryger 你是什么意思没有使用? bot jquery 和 handlebars 在模块内部使用,除非我在这里混淆了术语?
-
@kryger 我是 require.js 的新手,那么正确的方法是什么?
-
如果您不在该特定模块中使用 Handlebars,则“主”文件的签名应为
require(['app', 'jquery' ], function (app, $) (...)。
标签: javascript dependency-injection dependencies requirejs require