【问题标题】:RequireJS error handlingRequireJS 错误处理
【发布时间】:2014-07-30 19:22:00
【问题描述】:

我正在使用 requireJS 之类的方式添加 jquery

requirejs.config({
    enforceDefine: true,
    paths: {
        jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min'
    }
});

稍后在单独的 JS 文件中,我使用 require as 在页面上加载

require(['jquery'], function ($) {
    //Do something with $ here
}, function (err) {});

我给 jquery URL 不正确,想向最终用户显示一些自定义错误消息..我添加了上面的代码,但是当 URL 不正确时,控件没有进入 err 函数..我想添加任何其他代码吗..我正在使用 DOJO 版本。

【问题讨论】:

  • 你的最后一行让我很困惑。您使用的是 Dojo AMD 加载程序还是 RequireJS?它们有不同的错误处理,所以如果您使用 Dojo,它不会像您的问题中描述的那样工作。在您的控制台中打印以下内容:define.amd,它在说什么?
  • 它正在返回对象 { vendor="dojotoolkit.org"}
  • 这意味着您没有使用 RequireJS,但您使用的是 Dojo AMD 加载程序。
  • 我只使用 Dojo AMD 加载程序..它工作得很好..谢谢

标签: javascript dojo requirejs


【解决方案1】:

您似乎正在使用 Dojo AMD 加载程序,它们处理错误的方法不同。

在 RequireJS 中你会使用:

require([ 'jquery' ], function($) {
  // Do something with $ here
}, function(err) {
  // Error handling
});

在 Dojo 中,您将使用不同的语法,例如:

require.on('error', function(err) {
  // Error handling
});
require([ 'jquery' ], function($) {
  // Do something with $ here
});

一个例子:http://plnkr.co/edit/t3j7mTgLKSiTCIrvl2eD?p=preview

但是,由于您使用的是 Dojo,如果您使用的是 Dojo AMD 加载程序,requirejs.config() 可能也不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    相关资源
    最近更新 更多