2015-05-14 3 views
10

Ciao Stackoverflowers;)

faccio fatica per un po 'di tempo su questo particolare problema relativo alla modale bootstrap.ui:

Uncaught Error: Unknown provider: $templateRequestProvider <- $templateRequest <- $modal

Ho provato già a definire un provider ma non riesco a farlo funzionare correttamente.

Questo è il mio app.js:

var app = angular.module('stelping', ['ui.bootstrap']). 
config(['$routeProvider', function ($routeProvider) { 
    $routeProvider. 
     when('/', { 
      templateUrl: 'pages/home.html', 
      controller: HomeCtrl, 
      activetab: 'home' 
     }). 
     when('/notentool', { 
      templateUrl: 'pages/notentool.html', 
      controller: NotentoolCtrl, 
      activetab: 'notentool' 
     }). 
     when('/lerngruppe', { 
      templateUrl: 'pages/lerngruppe.html', 
      controller: LerngruppenCtrl, 
      activetab: 'lerngruppe' 
     }). 
     when('/raumreservierung', { 
      templateUrl: 'pages/raumreservierung.html', 
      controller: RaumreservierungCtrl, 
      activetab: 'raumreservierung' 
     }). 
     when('a', function() { 
      return { 
       restrict: 'E', 
       link: function(scope, elem, attrs) { 
        if(attrs.ngClick || attrs.href === '' || attrs.href === '#'){ 
         elem.on('click', function(e){ 
          e.preventDefault(); 
         }); 
        } 
      } 
     }}). 
     when('/registrieren', { 
      templateUrl: 'pages/registrieren.html', 
      controller: RegistrierungsCtrl, 
      activetab: 'registrieren' 
     }). 
     otherwise({ redirectTo: '/' }); 
}]).run(['$rootScope', '$modal', '$log', '$http', '$browser', '$timeout', "$route", function ($scope, $modal, $log, $http, $browser, $timeout, $route) { 

    $scope.$on("$routeChangeSuccess", function (scope, next, current) { 
     $scope.part = $route.current.activetab; 
    }); 


}]); 

app.config(['$locationProvider', function($location) { 
    $location.hashPrefix('!'); 
}]); 

E questo è il mio controller.js (solo parzialmente i due nuovi Ctrls):

function LerngruppenCtrl($scope, $modal, $log) { 
$scope.buildings = [ 1, 5, 6 ]; 
$scope.rooms = [ 0, 1, 2, 3, 4 ]; 
$scope.currentBuilding = 1; 
$scope.currentRoom = 0; 
$scope.setRoom = function(room) { 
    $scope.currentRoom = room; 
} 
$scope.setBuilding = function(building) { 
    $scope.currentBuilding = building; 
} 
$scope.imgChanger = function() { 
    return $scope.currentBuilding+"_"+$scope.currentRoom; 
}; 
$scope.class = "hidden"; 

$scope.open = function (size) { 

    var modalInstance = $modal.open({ 
     templateUrl: 'myModalContent.html', 
     controller: 'ModalInstanceCtrl', 
     size: size 
    }); 
    modalInstance.result.then(function() { 
     $log.info('Modal dismissed at: ' + new Date()); 
    }); 
}; 
} 

function ModalInstanceCtrl($scope, $modalInstance) { 
    $scope.cancel = function() { 
     $modalInstance.dismiss('cancel'); 
    }; 
} 
+0

La mia ipotesi è che le tue versioni di angolari e ui.bootstrap sono incompatibili. Sono entrambi gli ultimi? In caso contrario, su quali versioni sono attive? –

+1

Includete i file js Bootstrap js nel vostro file HTML? Spesso mi sono imbattuto in questi errori, dove si è scoperto che ho semplicemente dimenticato di caricare il file. – AaronB

+0

vero questo. Ho completamente dimenticato di controllare questo ... bene angolare è 1.1.15 e bootstrap ui è 0.13.0. cambiare angolare al più recente mi porterà a un nuovo problema: Errore non rilevato: [$ injector: modulerr] http://errors.angularjs.org/1.3.15/$injector/modulerr?p0=stelping&p1=Error%...gleapis. com% 2Fajax% 2Flibs% 2Fangularjs% 2F1.3.15% 2Fangular.min.js% 3A38% 3A135). Sì, aaron lo faccio, ma questo carico normalmente come dovrebbe, così gli strumenti dev mi dicono che –

risposta

29

Tale errore è dovuto a una mancata corrispondenza tra la versioni di ui.bootstrap e angular. ui.bootstrap .13 dipende da 1.3x, .12 dipende da 1.2x.

+1

Non l'ho visto in [Registro modifiche] (https://github.com/angular-ui/bootstrap/blob/master/CHANGELOG.md#0130-2015-05-02), dovrebbero aver messo queste informazioni. – Bogac

0

mi ha anche questo problema, io uso angolare 1.2.28 e ui.bootstrap 0.12.1, se uso Jetty eseguito il mio App su Chrome, allora console visualizzerà 'Unknown fornitore: $ templateRequestProvider < - $ templateRequest < - $ modal ', ma se eseguo la mia app su Safari non visualizzerò l'errore.

1

Ho anche lo stesso problema. ho risolto utilizzando la versione più recente di angularjs, ui-bootstrap ho usato queste versioni:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.4/angular.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.4/angular-animate.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.4/angular-route.min.js"></script> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.3/ui-bootstrap-tpls.min.js"></script> 
+0

Ho avuto un problema che è stato risolto con le quattro righe che hai scritto, grazie, continua ad aiutare –