【问题标题】:$uibModalProvider <- $uibModal <- StatusModalService giving error$uibModalProvider <- $uibModal <- StatusModalService 给出错误
【发布时间】:2016-07-01 16:00:10
【问题描述】:

尝试使用 angularjs 和 ui-bootstrap 构建模式:

版本

  • Angularjs及其组件是1.5.3

  • ui-bootstrap-tpls-1.3.3.js.

在主应用程序文件中,我已将 'ui.bootstrap' 包含为

var App = angular.module('aotaApp', ['ui.router','ui.bootstrap','checklist-model','ngSanitize'])
.controller("myController", function($scope,$state, $http)

在 StatusService 中,我将其用作

App.service("StatusModalService", ["$uibModal",
                          function ($uibModal) {
     var modalDefaults = {
         backdrop: true,
         keyboard: true,
         modalFade: true,
         templateUrl: 'resources/template/modal/confirmationModal.html'
     };
    var modalOptions = {
         closeButtonText: 'Close',
         actionButtonText: 'OK',
         headerText: 'Proceed?',
         bodyText: 'Perform this action?'
     };

     this.showModal = function (customModalDefaults, customModalOptions) {
         if (!customModalDefaults) customModalDefaults = {};
         customModalDefaults.backdrop = 'static';
         return this.show(customModalDefaults, customModalOptions);
     };

     this.show = function (customModalDefaults, customModalOptions) {
         //Create temp objects to work with since we're in a singleton service
         var tempModalDefaults = {};
         var tempModalOptions = {};

         //Map angular-ui modal custom defaults to modal defaults defined in service
         angular.extend(tempModalDefaults, modalDefaults, customModalDefaults);

         //Map modal.html $scope custom properties to defaults defined in service
         angular.extend(tempModalOptions, modalOptions, customModalOptions);

         if (!tempModalDefaults.controller) {
             tempModalDefaults.controller = function ($scope, $uibModalInstance) {
                 $scope.modalOptions = tempModalOptions;
                 $scope.modalOptions.ok = function (result) {
                     $uibModalInstance.close(result);
                 };
                 $scope.modalOptions.close = function (result) {
                     $uibModalInstance.dismiss('cancel');
                 };
             }
         }

         return $uibModal.open(tempModalDefaults).result;
     };
 }]);

但我遇到了错误

angular-1.5.3.js:13424 错误:[$injector:unpr] 未知提供者: $uibModalProvider

我是 Angular 新手,主要是在 app 中添加 ui.bootstrap。但它没有提供任何帮助。

请指导我。

【问题讨论】:

标签: javascript angularjs angularjs-directive angular-ui-bootstrap


【解决方案1】:

好像是版本问题,需要升级你的ui-bootstrap

https://github.com/compact/angular-bootstrap-lightbox/issues/42

【讨论】:

  • 我也尝试过 0.14.0 和 angular-1.5.3 但没有运气同样的错误。这在 **angular-ui.github.io/bootstrap**AngularJS 上有所提及(需要 AngularJS 1.4.x 或更高版本,使用 1.5.3 测试)。 0.14.3 是这个库的最后一个支持 AngularJS 1.3.x 的版本,0.12.0 是最后一个支持 AngularJS 1.2.x 的版本。
【解决方案2】:

安装最新版本的 angular-bootstrap

npm install angular-bootstrap or bower install angular-bootstrap

【讨论】:

    【解决方案3】:

    这也可能是由于重命名了 $uibModal。如果您遇到此错误,请尝试改用$modal

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 2017-12-20
      • 2012-09-25
      相关资源
      最近更新 更多