Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Unknown provider: ngDialogProvider"

In my app.js I have

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

for my controller I have

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

the ngDialog makes the error:

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

also I used refrenced css and js files

<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>

I tried all answers on stackoverflow and none of them work for me

like image 929
2 revs, 2 users 67% Avatar asked Apr 11 '15 09:04

2 revs, 2 users 67%


2 Answers

the problem was the config of ngDialogProvider

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

we have to use:

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");
        }
    });
}]); 
like image 74
2 revs, 2 users 67% Avatar answered Nov 10 '22 02:11

2 revs, 2 users 67%


I experienced the same error message when I first tried to add ngDialog to my app, and I tried the ngDialogProvider fix outlined by Disposer above. It didn't work for me. Then I realised that my app was partitioned into two modules; a top level module defining the controller, and core module defining a service with some lower level code. My code is structured that way because I started with the angular-phonecat tutorial as boilerplate. I was injecting ngDialog into the controller, and attempting to use it in the service. Once I fixed the injection to be into the correct module the issue was resolved.

like image 44
osullivj Avatar answered Nov 10 '22 04:11

osullivj