2015-06-06 3 views
0

Попытка сделать открытие модального окна в контроллере, используя app.factory.modularjs модальная инициализация с использованием фабрики

Получение странной ошибки и непонятно, в чем проблема. Таким образом, это ошибка я попал в Js консоли:

Error: [$injector:unpr] http://errors.angularjs.org/1.3.15/$injector/unpr?p0=modalServiceProvider%20%3C-%20modalService%20%3C-%20MapController

Вот мои файлы и структура:

Главный контроллер:

app.controller('MainController', ['$scope', 'modalService', function($scope, modalService){  
    ///Modal: Add item 
    ////////////////// 
    console.log('dfdfdf'); 
    $scope.AddItem = modalService.openAddItemDialog($scope); 
    }]); 

открыть его на простом HTML :

<div ng-controller="MainController"> 
    <button type="button" class="btn btn-block" ng-click="AddItem()"> </button> 
</div> 

Фабрика:

app.factory('modalService', ['$modal', function($modal) { 

    function openAddItemDialog($scope) { 
     console.log('dfdfdf'); 
     $scope.animationsEnabled = true; 
     $scope.valueToPass = "I must be passed"; 

     var modalInstance = $modal.open({ 
      animation: $scope.animationsEnabled, 
      templateUrl: 'AddItemDialog.html', 
      controller: 'AddItemController', 
      resolve: { 
       aValue: function() { 
        return $scope.valueToPass; 
       } 
      } 
     }); 
     modalInstance.result.then(function (paramFromDialog) { 
      $scope.paramFromDialog = paramFromDialog; 
     }); 
    } 

    return { 
     openAddItemDialog: openAddItemDialog 
    }; 
}]); 

модальный контроллер:

app.controller('AddItemController',function($scope, $modalInstance, aValue) { 
    $scope.valuePassed = aValue; 
    $scope.close = function() { 
     $modalInstance.close("Someone Closed Me"); 
    }; 
}); 

HTML шаблон:

<div class="modal-header"> 
    <h2>The title</h2> 
</div> 
<div class="modal-body"> 
    The body of the dialog with the value to pass '{{valuePassed}}' 
</div> 
<div class="modal-footer"> 
    <button class="btn" ng-click="close()">Close</button> 
</div> 

я даже не вижу первый результат console.log('dfdfdf'); Func. поэтому он каким-то образом нарушил работу главного контроллера .. но слепой, не может, в чем проблема? для меня, похоже, все должно работать.

** приложение определяется в отдельном файле, как var app = angular.module('MainPage', ['ui.bootstrap']);

ответ

0

Вы можете дважды проверьте, что вы включили файл службы в вашей странице приложения?
Дополнительная информация об этой ошибке here

+0

да, я проверил много раз сейчас ... все, кажется, в порядке. Вот почему спрашивать здесь. Может быть, есть что-то особенное в передаче '$ modal' на завод? – user1935987

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