【问题标题】:toastr is undefined when using toastr.js使用 toastr.js 时 toastr 未定义
【发布时间】:2014-02-28 17:34:25
【问题描述】:

我正在尝试将 toastr 带入我的应用程序。我做了一些非常简单的事情:

     bundles.Add(new ScriptBundle("~/Content/example-scripts").Include(
            "~/Areas/Examples/Scripts/vendor/*.js"
                   ));

该文件夹包含 toastr.js 的位置。然后在我看来:

   @Scripts.Render("~/Content/example-scripts")

我看到 toastr 在 Chrome 中被加载,但是当我从我的视图模型中调用 toastr 时:

$(document).ready(function () {
    toastr.success('sup');
    ko.applyBindings(new ViewModel());
});

我收到以下错误:

Uncaught Error: Mismatched anonymous define() module: function ($) {
        return (function () {
            var version = '2.0.1';
            var $container;
            var listener;
            var toastId = 0;
            var toastType = {
                error: 'error',
                info: 'info',
                success: '...<omitted>...ch require.js:166
Uncaught ReferenceError: toastr is not defined sampleVm.js:36

我做错了什么?

【问题讨论】:

  • 查看页面上的源代码并确保 toastr 包含在包中,然后确保您尝试引用它的脚本在该调用之后
  • 感谢@MattBody。我看到 toastr.js 正在加载,然后我的虚拟机调用它。
  • 您似乎在使用 require.js 但您没有使用它来加载导致此异常的 toaster.js ... 另请参阅:requirejs.org/docs/errors.html#mismatch
  • @nemesv - require.js 正在使用,但不在应用程序的这一部分...
  • 它仍然包含在此页面中,否则您不会收到此错误...如果不需要此页面,只需删除 require.js 引用,烤面包机应该可以正常工作。

标签: javascript asp.net-mvc-3 asp.net-mvc-4 razor toastr


【解决方案1】:

您似乎正在使用 require.js,因为 error message 来自它。

Mismatched anonymous define() module 表示toaster.js 被定义为匿名模块但不是通过require.js 模块加载机制加载的。

因此,在您的情况下,有两种解决方案:

  • 如果您使用的是 require.js,请使用它来加载 toaster.js
  • 如果不打算使用 require.js,只需从页面中删除引用,toaster.js 就会正常加载

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    相关资源
    最近更新 更多