2016-04-21 94 views
0

我想獲得一個角度模態窗體工作,但我總是得到一個未知的提供商錯誤。我想我已經包含了所有必需的文件?Angular Modal服務未知供應商

這裏是我的呼叫服務代碼:

 function deleteConfirm() { 
     var modalOptions = { 
      closeButtonText: 'Cancel', 
      actionButtonText: 'Delete Supplier', 
      headerText: 'Delete ' + supplierName + '?', 
      bodyText: 'Are you sure you want to delete this supplier?' 
     }; 

     modalService.showModal({}, modalOptions).then(function(result) { 
      if (result === 'ok') { 
      alert("ok"); 
      } 
     }, function(error) { 
      alert("Error deleting"); 
     }); 
     } 

這裏是服務的代碼:

(function() { 
    'use strict'; 

    modalService.$inject = '$uibModal'; 

    angular.module('plunker').factory('modalService', modalService); 

    function modalService($uibModal) { 

    var injectParams = ['$uibModal']; 

    //var modalService = function($uibModal) { 

    var modalDefaults = { 
     backdrop: true, 
     keyboard: true, 
     modalFade: true, 
     templateUrl: 'modal.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 this service 
     angular.extend(tempModalDefaults, modalDefaults, customModalDefaults); 

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

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

     tempModalDefaults.controller.$inject = ['$scope', '$uibModalInstance']; 
     } 

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

http://plnkr.co/edit/xNpbI42UJm8acODSOimR

感謝所有幫助

+0

變化'modalService $注= '$ uibModal''到'modalService $注入= [' $ uibModal'];'$注射。需要是一個字符串數組。 – Martin

+0

嗨我試過,但仍然得到$ uibModalProvider < - $ uibModal < - modalService錯誤 – user142617

回答

0
angular.module('plunker').factory('modalService', modalService); 
modalService.$inject = ['$uibModal']; 

試試這個!

添加到主app.js依賴性[ 'ui.bootstrap']

var app = angular.module('plunker', ['ui.bootstrap']); 
+0

嗨還沒有得到$ uibModalProvider < - $ uibModal < - modalService錯誤 – user142617

+0

檢查編輯我的答案! –

+0

嗨Dmytro感謝您的幫助到目前爲止,但我仍然收到錯誤,沒有模式的形式工作。你能編輯我的plunk並試着讓它工作嗎? – user142617

0

你忘了包括 「ui.bootstrap」 到你的應用程序。

簡單地引導你的應用程序是這樣來解決此問題:

var app = angular.module('plunker', ["ui.bootstrap"]); 
+0

不,我已經試過這個,它不起作用,這裏是一個普朗克,我已經改變了你說的,我仍然得到一個錯誤? http://plnkr.co/edit/xNpbI42UJm8acODSOimR – user142617

+0

你會得到另一個錯誤,因爲你有其他錯誤,可能是因爲你從未打開Angular文檔。 –