2014-09-09 4 views
0

У меня есть ui.bootstrap в качестве зависимости в моем приложении, но у меня возникла проблема с введением модального сервиса $ в мой контроллер. Я получаю следующее сообщение об ошибке:Проблема с инъекцией углового ui в мой контроллер

$modal is not defined 

в моем коде контроллера, а именно в этой функции ниже, где я пытаюсь открыть модальный:

function saveAndDisplayReport() { 

     var modalInstance = $modal.open({ 
      templateUrl: 'myModalContent.html', 
      controller: ModalInstanceCtrl, 
      size: size, 
      resolve: { 
       items: function() { 
        return $scope.items; 
       } 
      } 
     }); 
     $location.url('index.html#/?reptname=' + vm.reptName); 
    } 

Вот мой reportmaint.js контроллер заголовка раздела кода , но Im»неясна о том, как внедрить ui.bootstrap (см параметр $ модальный):

(function() { 
'use strict'; 
var controllerId = 'reportmaint'; 
angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$location', 'common', 'datacontext', 
               'gridHierarchyService', 'reportsContext', '$modal', reportmaint]); 

function reportmaint($rootScope, $scope, $location, common, datacontext, gridHierarchyService, reportsContext) { 
    var getLogFn = common.logger.getLogFn; 
    var log = getLogFn(controllerId);   
    var logErr = getLogFn("error"); 
    ... 
})(); 

и вот мой app.js где„определен ui.bootstrap“:

(function() { 
'use strict'; 

var app = angular.module('app', [ 
    // Angular modules 
    'ngAnimate',  // animations 
    'ngRoute',   // routing 
    'ngSanitize',  // sanitizes html bindings (ex: sidebar.js) 

    // Custom modules 
    'common',   // common functions, logger, spinner 
    'common.bootstrap', // bootstrap dialog wrapper functions 

    // 3rd Party Modules 
    'ui.bootstrap',   // ui-bootstrap (ex: carousel, pagination, dialog) 
    'kendo.directives',  // Kendo UI 
    'app.customcontrollers' // Language/Currency settings   
    //'ngjqxsettings'  // jQWidgets init and directives (loaded in index.html) 
]); 
app.run(['$route', '$rootScope', 'common', 'userService', function ($route, $rootScope, common, userService) { 
    console.log("In app.run"); 
    var getLogFn = common.logger.getLogFn; 
    var log = getLogFn('app'); 

}]); 

})();

и в моем файле index.html У меня есть ссылка скрипт:

<script src="scripts/ui-bootstrap-tpls-0.10.0.js"></script> 

Я использую этот plunker как живой пример, но я все равно не так-то - http://plnkr.co/edit/KsADLPaOfY7rtPTdWyYn?p=preview

спасибо заранее за вашу помощь ...

Боба

+1

plunkr ссылка неправильно –

+0

я установил plunker URL. –

ответ

2

кажется, что вы не инъекционный модального на всех ($ модальный отсутствуют) в зависимости от ваших коллег ntroller; попробовать что-то вроде:

я не уверен, если reportmaint это услуга, если нет, то просто удалите его

angular.module('app').controller('reportmaint', ['$rootScope', '$scope', '$location', 'common', 'datacontext','gridHierarchyService', 'reportsContext', '$modal', 'reportmaint', 
    function($rootScope, $scope, $location, common, datacontext, gridHierarchyService, reportsContext, $modal, reportmaint) { 
     //Client code 

    } 
]); 
+0

Теперь я бы просто позвонил в мою функцию saveAndDisplayReport(). –

+0

Создайте свою функцию, используя $ scope, вызовите ее с помощью кнопки ng-click! ура! –

+0

теперь странно, что хотя я могу вызывать модальное окно через javascript, он фактически не прекращает обработку из-за обещаний, которые он возвращает. Я бы хотел остановить запрос пользователю, как в var resp = vm.open ('sm'). ПОЖАЛУЙСТА ПОМОГИ. –

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