【问题标题】:ReferenceError: define is not defined while embedding fuelux in datagrid.jsReferenceError:在 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 中的代码。

  • 这是什么错误?
  • 我认为definerequire.js 的关键字。这是否意味着 fuelux-datagrid 依赖于 require.js
  • 谁能解释我如何加载库以使其正常工作?

【问题讨论】:

    标签: javascript jquery datagrid requirejs fuelux


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 2012-08-24
      • 1970-01-01
      • 2015-10-04
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多