【问题标题】:"Unknown provider: ngDialogProvider"“未知提供者:ngDialogProvider”
【发布时间】:2015-04-11 09:17:36
【问题描述】:

在我的app.js 我有

var app = angular.module("atlas", ["ngRoute", "ngDialog"]);

对于我的控制器,我有

app.controller("nodeController", function ($scope, $http, ngDialog)

ngDialog 出错:

>Error: [$injector:unpr] Unknown provider: ngDialogProvider <- ngDialog <-nodeController

我也使用了引用的 cssjs 文件

<link rel="stylesheet" href="~/Content/ngDialog-custom-width.css" />
<link rel="stylesheet" href="~/Content/ngDialog-theme-default.min.css" />
<link rel="stylesheet" href="~/Content/ngDialog-theme-plain.min.css" />
<link rel="stylesheet" href="~/Content/ngDialog.css" />

<script src="~/Scripts/jquery-2.1.3.min.js"></script>
<script src="~/Scripts/angular.js"></script>
<script src="~/Scripts/angular-route.js"></script>
<script src="~/Scripts/ngDialog.js"></script>

我在stackoverflow 上尝试了所有答案,但没有一个对我有用

【问题讨论】:

  • @dfsq,这就是所有的代码。问题是当我不使用 ngDialog 作为控制器的参数时,一切正常(当我将 ngDialog 添加为参数时,我得到了错误),但我想要模态窗口的 ngDialog。
  • 表示没有ngDialog模块。检查是否确实加载了脚本,路径正确,没有错误/

标签: javascript angularjs


【解决方案1】:

问题是ngDialogProvider的配置

var app = angular.module("atlas", ["ngRoute", "ngDialog"]);之后

我们必须使用:

app.config(["ngDialogProvider", function (ngDialogProvider) {
    ngDialogProvider.setDefaults({
        className: "ngdialog-theme-default",
        plain: false,
        showClose: true,
        closeByDocument: true,
        closeByEscape: true,
        appendTo: false,
        preCloseCallback: function () {
            console.log("default pre-close callback");
        }
    });
}]); 

【讨论】:

    【解决方案2】:

    当我第一次尝试将 ngDialog 添加到我的应用程序时,我遇到了同样的错误消息,我尝试了上面 Disposer 概述的 ngDialogProvider 修复。它对我不起作用。然后我意识到我的应用被分成了两个模块;定义控制器的顶级模块,以及定义具有一些较低级别代码的服务的核心模块。我的代码是这样构造的,因为我从 angular-phonecat 教程作为样板开始。我将 ngDialog 注入控制器,并尝试在服务中使用它。一旦我将注入修复到正确的模块中,问题就解决了。

    【讨论】:

      猜你喜欢
      • 2018-09-28
      • 1970-01-01
      • 2013-09-27
      • 2016-11-29
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多