ReferenceError:在 datagrid.js 中嵌入燃料时未定义定义
Posted
技术标签:
【中文标题】ReferenceError:在 datagrid.js 中嵌入燃料时未定义定义【英文标题】:ReferenceError: define is not defined while embedding fuelux in datagrid.js 【发布时间】:2013-03-20 03:53:05 【问题描述】:我想添加使用 http://exacttarget.github.com/fuelux/ 来构建数据网格。 我想添加库来使用它。我做了以下事情:
<link href="<spring:url value='/assets/css/fuelux.min.css' htmlEscape='true' />" media="all" rel="stylesheet" type="text/css" />
<link href="<spring:url value='/assets/css/fuelux-responsive.min.css' htmlEscape='true' />" media="all" rel="stylesheet" type="text/css" />
<script src="<spring:url value='/assets/js/fuelux-datagrid.js' htmlEscape='true' />" type="text/javascript"></script>
我确信路径是正确的,因为它们可以在其他库中使用。但是,我收到以下错误:
ReferenceError: define is not defined
[Break On This Error]
define(['require','jquery'],function(require)
其中define(['require','jquery'],function(require) ...
是fuelux-datagrid.js
中的代码。
define
是require.js 的关键字。这是否意味着 fuelux-datagrid 依赖于 require.js?
谁能解释我如何加载库以使其正常工作?
【问题讨论】:
【参考方案1】:这对我有用:
<script src="https://raw.github.com/ExactTarget/fuelux/master/lib/require.js"></script>
<script type="text/javascript" src="https://raw.github.com/ExactTarget/fuelux/master/dist/datagrid.js"></script>
我尝试了@AdamAlexander 的建议和here 的建议,但没有奏效。我还尝试了最新的 requiredjs 并得到了一个令人讨厌的异常。去搞清楚。
【讨论】:
谢谢。这对我也有用。非常感谢。而且,其他人的回答也很有帮助。 对于它的价值,我能够让链接的 ExactTarget 指令(例如,只是 jQuery 和他们的加载器)工作。最初并没有,我发现我缺少的是在我试图构建的组件上方的 DOM 中具有“fuelux”类的元素。 jsfiddle.net/LeCodeNinja/FdpVL 这几乎对我有用,但是 require.js 被返回为 'text/plain' 所以不作为 js 运行。我将 URL 中的 raw.github 更改为 rawgithub,如下所述:webmasters.stackexchange.com/a/51708【参考方案2】:如果你不使用 RequireJS,你可以通过在基本脚本标签中加载 loader.min.js 来解决这个问题:
<script src="http://fuelcdn.com/fuelux/2.3/loader.min.js"></script>
此包包含 Bootstrap 和 Fuel UX 所需的所有 JavaScript,不依赖于 AMD 加载程序。
【讨论】:
我可能应该在执行此操作之前澄清需要加载 jQuery。对任何被绊倒的人深表歉意! 亚当,我正在尝试使用 FuelUX(非 AMD)的 wizard.js 部分。我正在加载fuelux.min.css、jquery-2.1.0.min.js、loader.min.js 和wizard.js(按此顺序),但仍然没有定义定义。我错过了什么吗? loader.min.js 包含所有控件,包括向导。您看到的错误可能是由 wizard.js 中的 AMD 包装器引入的。您应该能够删除该文件,因为逻辑包含在 loader.min.js 中。请注意,Fuel UX 加载策略可能会在库的版本 3 中发生变化。【参考方案3】:是的,他们似乎依赖于 RequireJS。我必须同意他们没有太多资源来解释如何加载库(至少从我所见),但我要做的是加载 require.js 并检查它之后尝试加载的其他资源,通过查看网络请求。
这是一个关于如何设置 RequireJS 的示例。也可以看their docs。
<script src="scripts/require.js"></script>
<script>
require.config(
baseUrl: "/another/path", //here's where it will look for scripts
paths:
"some": "some/v1.0" //path to other dependencies not located in the base path
);
</script>
【讨论】:
以上是关于ReferenceError:在 datagrid.js 中嵌入燃料时未定义定义的主要内容,如果未能解决你的问题,请参考以下文章
ReferenceError:在开玩笑测试中没有定义 React