2016-09-21 30 views
0

之外創建角度模態在app.js,具體內$rootScope.$on('$routeChangeStart')我有一個創建一個模態的函數:控制器

setIdleTimeout.$inject = ['$uibModal'] 
function setIdleTimeout(timerStart, timerDuration, $scope, $uibModal){ 
    console.log('timerStart: ', timerStart, 'timerDuration: ', timerDuration) 

    setTimeout(function(){ 
     console.log('setTimeout running') 
     var modalInstance = $uibModal.open({ 
      animation: $scope.animationsEnabled, 
      templateUrl: '****', 
      controller: '****', 
      scope: $scope, 
      size: size, 
      backdrop : 'static', 
      resolve: {} 
     }); 

     modalInstance.result.then(function (selectedItem) { 
      $scope.selected = selectedItem 
     }, function() { }) 

    }, 10000) 
} 

即時得到Uncaught TypeError: Cannot read property 'open' of undefined,甚至壽林注入它和包括在Index.html

的源代碼

<script src="~/lib/angular-bootstrap/ui-bootstrap-tpls.js"></script>

如何在控制器之外創建模態?

回答

1

可能需要你的代碼結構更詳細,特別是在您調用$ rootScope的環境。在$()...

我覺得你這裏的問題是$uibModal不能正常噴射。不要在setIdleTimeout函數中使用$inject,而是嘗試將$uibModal注入到與注入$rootScope的位置相同的級別。