未知提供者:3Provider< - 3使用Angular Bootstrap uibModal

时间:2015-11-27 21:39:02

标签: javascript angularjs modal-dialog angular-ui-bootstrap angular-bootstrap

这个问题已经持续了几个星期,我是Angular的新手,所以我希望这是一个容易解决的问题。

我正在使用Angular Bootstrap Modal(ui.bootstrap.modal)并且它无法正常工作。这是我的代码。

在contentApp.js上(带有其他配置选项)

angular
    .module('contentApp', [
        'ui.bootstrap',
        'ui.router',
        'satellizer',
        'angular-jwt',
        'angular.morris-chart'
    ])

// Additional Configuration...

On TransModalController.js

angular
    .module('contentApp')
    .controller('TransModalController', TransModalController)
    .controller('MICnewGroup', MICnewGroup)
    .controller('MICaddTransmitter', MICaddTransmitter);

function TransModalController($scope, $http, $uibModal, $log) {

    $scope.openModal = function (url) {

        var ModalInstanceController = "";

        if ('newGroup' == url) {
            url = "php/modal/newGroup.html";
            ModalInstanceController = 'MICnewGroup'

        } else if ('addTransmitter' == url) {
            url = "php/modal/addTransmitter.html";
            ModalInstanceController = 'MICaddTransmitter'
        };

        var modalInstance = $uibModal.open({             //<-- Line 26
            animation: true,
            templateUrl: url,
            controller: ModalInstanceController,
            size: 'sm',
            resolve: {
                user: $scope.sub
            }
        });
    };
}


// Controller for Modal Instance of New Group
function MICnewGroup($scope, $http, $state, $uibModalInstance, user) {
    $scope.newGroup = {
        'user': user,
        'name': ''
    }

    $scope.createGroup = function() {

        $http.post('api/user/'+$scope.sub+'/group', $scope.newGroup)
            .then(function(data) {
                $state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams

                $uibModalInstance.close();
            }
        );
    }
}

// Controller for Modal Instance of Add Transmitter
function MICaddTransmitter($scope, $http, $state, $uibModalInstance, user) {
    $scope.newTransmitter = {
        'user': user,
        'code': ''
    }

    $scope.addTransmitter = function() {

        $http.put('api/transmitter/'+$scope.newTransmitter.code, $scope.newTransmitter)
            .then(function(data) {
                $state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams

                $uibModalInstance.close();
            }
        );
    }
}

所有这些在我的 localhost (Mac)上运行良好,但上传到我的服务器(Ubuntu)时会抛出此错误

angular.js:12477Error: [$injector:unpr] Unknown provider: 3Provider <- 3
  http://errors.angularjs.org/1.4.7/$injector/unpr?p0=3Provider%20%3C-%203
  at angular.js:68
  at angular.js:4289
  at Object.getService [as get] (angular.js:4437)
  at angular.js:4294
  at Object.getService [as get] (angular.js:4437)
  at ui-bootstrap-tpls.js:4056
  at Object.forEach (angular.js:350)
  at getResolvePromises (ui-bootstrap-tpls.js:4052)
  at Object.$modal.open (ui-bootstrap-tpls.js:4097)
  at Scope.TransModalController.$scope.openModal (TransModalController.js:26)

Angular v1.4.7 ,ui.bootstrap v0.14.3

为什么它适用于我的 Localhost ,而不适用于我的服务器

1 个答案:

答案 0 :(得分:0)

最有可能是因为缩小,请参阅“关于缩小的注意事项&#39;此link

部分