13

我正在做教程,这部分是关于实现登录的,这应该给关于登录成功的气球

angular.module("app").value("mvToastr", toastr);

angular.module("app").factory("mvNotifier", function(mvToastr) {
   return {
      notify: function(msg) {
          mvToastr.success(msg);
          console.log(msg);
       }
    }
});

我得到了这个,我有点不明白。所有 .js 文件似乎都已加载。请告诉我问题出在哪里,谢谢。

TypeError: Cannot call method 'extend' of undefined
   at getOptions (http://localhost:3030/vendor/toastr/toastr.js:282:14)
   at Object.success (http://localhost:3030/vendor/toastr/toastr.js:68:17)
   at Object.notify (http://localhost:3030/app/common/mvNotifier.js:6:22)
   at http://localhost:3030/app/account/mvNavBarLoginCtrl.js:8:28
   at wrappedCallback (http://localhost:3030/vendor/angular/angular.js:11033:81)
   at wrappedCallback (http://localhost:3030/vendor/angular/angular.js:11033:81)
   at http://localhost:3030/vendor/angular/angular.js:11119:26
   at Scope.$eval (http://localhost:3030/vendor/angular/angular.js:12045:28)
   at Scope.$digest (http://localhost:3030/vendor/angular/angular.js:11871:31)
   at Scope.$apply (http://localhost:3030/vendor/angular/angular.js:12151:24)

   angular.js:9503
4

3 回答 3

19

查看toastr 的源代码,它看起来像是getOptions()调用了 jQuery 的$.extend()方法。

Toastr 依赖于 jQuery,来自 github 自述文件的第一行:

toastr 是一个用于非阻塞通知的 Javascript 库。jQuery 是必需的。目标是创建一个可以定制和扩展的简单核心库。

只需在您的主视图 html 中包含 jquery。

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
于 2014-03-06T00:30:33.703 回答
1

我遇到了这个问题,事实证明 Toastr 需要 JQuery 才能工作,请始终确保在 Toastr 之前包含 JQuery,例如angular.json

            "scripts": [
              "node_modules/jquery/dist/jquery.min.js", // Make sure this comes before
              "node_modules/toastr/build/toastr.min.js", // this one
              "node_modules/bootstrap/dist/js/bootstrap.min.js"
            ]
于 2019-05-21T02:43:25.770 回答
0

我在处理自动化任务然后在浏览器中加载时遇到了这个问题。我升级了浏览器同步并修复了它。

于 2015-08-27T21:46:33.957 回答