Uncaught Error: Неизвестный поставщик: $templateRequestProvider <- $templateRequest <- $modal

Hello Stackoverflowers;)

Я немного борюсь за эту конкретную проблему относительно bootstrap.ui modal:

Неподготовленная ошибка: неизвестный поставщик: $templateRequestProvider < - $templateRequest < - $modal

Я уже пытался определить поставщика, но я не могу заставить его работать правильно.

Это мой 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('!');
}]);

И это мой controller.js(частично только два новых 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');
    };
}

Ответ 1

Эта ошибка вызвана несоответствием между версиями ui.bootstrap и angular. ui.bootstrap.13 зависит от 1.3x,.12 зависит от 1.2x.

Ответ 2

У меня тоже такая же проблема. Я решил это, используя последнюю версию angularjs, ui-bootstrap Я использовал эту версию:

<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>

Ответ 3

У меня также есть эта проблема, я использую angular 1.2.28 и ui.bootstrap 0.12.1, если я использую Jetty для запуска моего приложения в Chrome, тогда консоль отобразит "Неизвестный поставщик: $templateRequestProvider < - $templateRequest < - $modal ', но если я запустил приложение App на Safari, не будет отображаться ошибка.