2015-04-11 2 views
6

В моей app.js у меня есть"Неизвестный поставщик: ngDialogProvider"

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

для моего контроллера у меня есть

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

ngDialog делает ошибку:

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

также я использованные оговоренные css a й js файлы

<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 и ни один из них не работает для меня

+0

@dfsq, это все код. проблема в том, что я не использую ngDialog в качестве параметра для контроллера, все работает отлично (когда я добавляю параметр ngDialog как параметр, я получаю ошибку), но я хочу ngDialog для модальных окон. – Disposer

+1

Это означает, что нет модуля ngDialog. Проверьте, действительно ли сценарий загружен, правильный путь, нет ошибок / – dfsq

ответ

2

проблема была конфиг из 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"); 
     } 
    }); 
}]); 
1

У меня возникло такое же сообщение об ошибке, когда я впервые попытался добавить ngDialog в свое приложение, и я попробовал исправление ngDialogProvider, описанное выше. Это не сработало для меня. Затем я понял, что мое приложение разделено на два модуля; модуль верхнего уровня, определяющий контроллер, и основной модуль, определяющий услугу с некоторым кодом нижнего уровня. Мой код структурирован таким образом, потому что я начал с учебника углового phonecat в качестве шаблона. Я вводил ngDialog в контроллер и пытался использовать его в службе. Как только я зафиксировал инъекцию в правильном модуле, проблема была решена.

Смежные вопросы