2015-04-11 15 views
6

Nel mio app.js ho"Unknown provider: ngDialogProvider"

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

per il mio controller ho

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

il ngDialog fa l'errore:

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

anche io utilizzato con refrattario css a ND js file

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

Ho provato tutte le risposte su stackoverflow e nessuno di loro lavorare per me

+0

@dfsq, questo è tutto il codice. il problema è quando non sto usando ngDialog come parametro per il controller, tutto funziona correttamente (quando aggiungo ngDialog come parametro, ottengo l'errore), ma voglio ngDialog per Windows modale. – Disposer

+1

Significa che non c'è nessun modulo ngDialog. Verifica che lo script sia effettivamente caricato, percorso corretto, nessun errore / – dfsq

risposta

2

il problema era la configurazione di ngDialogProvider

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

dobbiamo usare:

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"); 
     } 
    }); 
}]); 
1

Ho riscontrato lo stesso messaggio di errore quando ho provato ad aggiungere ngDialog alla mia app e ho provato la correzione ngDialogProvider descritta da Disposer sopra. Non ha funzionato per me. Poi ho capito che la mia app era divisa in due moduli; un modulo di livello superiore che definisce il controller e il modulo principale che definisce un servizio con un codice di livello inferiore. Il mio codice è strutturato in questo modo perché ho iniziato con il tutorial angular-phonecat come boilerplate. Stavo iniettando ngDialog nel controller e tentando di usarlo nel servizio. Una volta che ho riparato l'iniezione nel modulo corretto, il problema è stato risolto.

Problemi correlati