Ошибка консоли в $element при использовании $mdDialog материала AngularJS

Я пытаюсь решить эту ошибку, которая отображается в консоли, она возникает только на сервере, на моем локальном хосте модальный режим работает правильно. Вот ошибка (нажмите, чтобы открыть ссылку):

У меня есть представление с контроллером:

.when('/aseguradora', {
    templateUrl: 'views/insuranceagentdashboard.html',
    controller: 'InsuranceagentdashboardCtrl'
})

Это контроллер:

angular.module('virtualApp').controller('InsuranceagentdashboardCtrl', ['$http', '$scope', 'pager', 'Dialogs', function($http, $scope, pager, Dialogs) {..

Внутри контроллера у меня есть функция, которая выполняет модальный режим (Диалоги - это сервис):

$scope.showCosignerFormDialog = function(insuranceRequest) {
    Dialogs.cosignerFormdialog(insuranceRequest);
}

В HTML у меня есть md-button с ng-click

<md-button class="md-color-green" ng-click="showCosignerFormDialog(insuranceRequest)">VER SOLICITUD</md-button>

Это служба Dialog, которая выполняет модальное окно:

dialogs.cosignerFormdialog = function(insuranceRequest) {
    return $mdDialog.show({
        templateUrl: 'views/cosignerformdialog.html',
        autoWrap: false,
        controller: 'IdentityVerificationWizardCtrl',
        locals: {
            listing: insuranceRequest
        },
        preserveScope: true,            
        escapeToClose: false,
        fullscreen: true,
        clickOutsideToClose: true
    });
};

Я не знаю, почему эта ошибка может возникать в консоли, находящейся в URL-адресе сервера, если я нахожусь на своем локальном хосте, я не получаю эту ошибку ...

ЭТО КОНТРОЛЛЕР identityverificationwizard.js:

angular.module('virtualApp').controller('IdentityVerificationWizardCtrl', ['$scope', 'upload', '$http', 'listing', '$routeParams', '$location', 'Dialogs', '$element', function($scope, upload, $http, listing, $routeParams, $location, Dialogs, $element) {
    $scope.propertyListing = listing;
    $scope.insuranceStudyContactInfo = {};
    $scope.insuranceStudyJobInfo = {};
    $scope.insuranceStudyFinancialInfo = {};
    $scope.insuranceStudyAssets = {};
    $scope.identityInfo = {
        date : moment('01/01/2000', 'DD/MM/YYYY').toDate()
    };
    $scope.virtualSignatureInfo = {};
    $scope.isCorporation = 'false';
    $scope.insuranceStudyJobInfo.publicOfficer = false;
    $scope.insuranceStudyJobInfo.managesPublicFunds = false;
    $scope.insuranceStudyJobInfo.linkedToRenownedPeople = false;
    $scope.insuranceStudyJobInfo.vatResponsible = false;
    $scope.insuranceStudyJobInfo.greatContributor = false;

    $scope.insuranceStudyFinancialInfo.doImport = false;
    $scope.insuranceStudyFinancialInfo.doExport = false;
    $scope.insuranceStudyFinancialInfo.doInvest = false;
    $scope.insuranceStudyFinancialInfo.doCurrencyExchange = false;
    $scope.insuranceStudyFinancialInfo.doPayServices = false;
    $scope.insuranceStudyFinancialInfo.doPayLoans = false;
    $scope.insuranceStudyFinancialInfo.doTransactions = false;

    $scope.rentProcessId = $scope.propertyListing.rentProcessId;
    $scope.cosignerKey = $location.search().cosignerKey;

    if ($scope.rentProcessId || $scope.cosignerKey) {
        $scope.readOnly = false;
    } else {
        $scope.readOnly = true;
    }

    $scope.setTabIndex = function(index) {
        $scope.tabIndex = index;
    }

    $scope.fileChanged = function(kind, file) {

        var reader = new FileReader();
        reader.onload = function(e) {
            if (kind == 'front') {
                $scope.frontIdFile = file;
                $scope.frontIdImage = e.target.result;
                $scope.$apply();
            } else {
                $scope.backIdFile = file;
                $scope.backIdImage = e.target.result;
                $scope.$apply();
            }
        };
        reader.readAsDataURL(file.files[0]);
        $scope.$apply();
    }

    $scope.uploadForm = function() {
        var params = {};

        if ($scope.insuranceStudyContactInfo.city) {
            $scope.insuranceStudyContactInfo.cityCode = $scope.insuranceStudyContactInfo.city.cityCode;
        }

        if ($scope.insuranceStudyJobInfo.city) {
            $scope.insuranceStudyJobInfo.cityCode = $scope.insuranceStudyJobInfo.city.cityCode;
        }
        if ($scope.insuranceStudyAssets.hasProperties) {
            if ($scope.insuranceStudyAssets.property1 && $scope.insuranceStudyAssets.property1.city) {
                $scope.insuranceStudyAssets.property1.cityCode = $scope.insuranceStudyAssets.property1.city.cityCode || null;
            } else {
                delete $scope.insuranceStudyAssets.property1;
            }

            if ($scope.insuranceStudyAssets.property2 && $scope.insuranceStudyAssets.property2.city) {
                $scope.insuranceStudyAssets.property2.cityCode = $scope.insuranceStudyAssets.property2.city.cityCode || null;
            } else {
                delete $scope.insuranceStudyAssets.property2;
            }
        } else {
            delete $scope.insuranceStudyAssets.property1;
            delete $scope.insuranceStudyAssets.property2;
        }

        if ($scope.propertyListing.rentProcessId) {
            params.rentProcessId = $scope.propertyListing.rentProcessId;
        }

        if ($location.search().cosignerKey) {
            params.cosignerKey = $location.search().cosignerKey;
        }

        if ($scope.identityInfo.date) {
            $scope.identityInfo.birthDate = formatedDate($scope.identityInfo.date, 'DD/MM/YYYY');
        }
        $scope.insuranceStudyFinancialInfo.doImport = $scope.insuranceStudyFinancialInfo.doImport || false;
        $scope.insuranceStudyFinancialInfo.doExport = $scope.insuranceStudyFinancialInfo.doExport || false;
        $scope.insuranceStudyFinancialInfo.doInvest = $scope.insuranceStudyFinancialInfo.doInvest || false;
        $scope.insuranceStudyFinancialInfo.doCurrencyExchange = $scope.insuranceStudyFinancialInfo.doCurrencyExchange || false;
        $scope.insuranceStudyFinancialInfo.doPayServices = $scope.insuranceStudyFinancialInfo.doPayServices || false;
        $scope.insuranceStudyFinancialInfo.doPayLoans = $scope.insuranceStudyFinancialInfo.doPayLoans || false;
        $scope.insuranceStudyFinancialInfo.doTransactions = $scope.insuranceStudyFinancialInfo.doTransactions || false;

        params.isCorporation = $scope.isCorporation;
        params.contactInfo = JSON.stringify($scope.insuranceStudyContactInfo);
        params.jobInfo = JSON.stringify($scope.insuranceStudyJobInfo);
        params.financialInfo = JSON.stringify($scope.insuranceStudyFinancialInfo);
        params.assets = JSON.stringify($scope.insuranceStudyAssets);
        params.virtualSignatureInfo = JSON.stringify($scope.virtualSignatureInfo);
        params.identityInfo = JSON.stringify($scope.identityInfo);

    $scope.isReadOnly = function() {
        if ($scope.readOnly) {
            $http.get(root + "Insurance/s/getInsuranceRequest", {
                params: {
                    insuranceRequestId: $scope.propertyListing.insuranceRequestId
                }
            }).then(function(res) {
                $scope.code = res.data.code;
                $scope.type = res.data.type;
                $scope.datetime = res.data.datetime;
                $scope.status = res.data.status;
                $scope.listingCode = res.data.listingCode;
                $scope.isCorporation = res.data.corporation + "";
                $scope.identityInfo.documentTypeCode = res.data.identityInfo.documentTypeCode;
                $scope.identityInfo.documentNumber = res.data.identityInfo.documentNumber;
                $scope.identityInfo.names = res.data.identityInfo.names;
                $scope.identityInfo.lastNames = res.data.identityInfo.lastNames;
                $scope.identityInfo.date = res.data.identityInfo.birthDate;
                $scope.insuranceStudyContactInfo = res.data.contactInfo;
                $scope.insuranceStudyJobInfo = res.data.jobInfo;
                $scope.insuranceStudyFinancialInfo = res.data.financialInfo;

                if ($scope.insuranceStudyFinancialInfo.foreignAccountBank) {
                    $scope.insuranceStudyFinancialInfo.doForeignAccount = true;
                }
                if ($scope.insuranceStudyFinancialInfo.foreignAccount) {
                    $scope.insuranceStudyFinancialInfo.doForeignAccount = true;
                }
                if ($scope.insuranceStudyFinancialInfo.foreignAccountCurrency) {
                    $scope.insuranceStudyFinancialInfo.doForeignAccount = true;
                }
                if ($scope.insuranceStudyFinancialInfo.foreignAccountCountry) {
                    $scope.insuranceStudyFinancialInfo.doForeignAccount = true;
                }
                if ($scope.insuranceStudyFinancialInfo.foreignAccountCity) {
                    $scope.insuranceStudyFinancialInfo.doForeignAccount = true;
                }
                if ($scope.insuranceStudyFinancialInfo.doImport) {
                    $scope.insuranceStudyFinancialInfo.doInternationalOperations = true;
                }
                if ($scope.insuranceStudyFinancialInfo.doExport) {
                    $scope.insuranceStudyFinancialInfo.doInternationalOperations = true;
                }
                if ($scope.insuranceStudyFinancialInfo.doInvest) {
                    $scope.insuranceStudyFinancialInfo.doInternationalOperations = true;
                }
                if ($scope.insuranceStudyFinancialInfo.doCurrencyExchange) {
                    $scope.insuranceStudyFinancialInfo.doInternationalOperations = true;
                }
                if ($scope.insuranceStudyFinancialInfo.doPayServices) {
                    $scope.insuranceStudyFinancialInfo.doInternationalOperations = true;
                }
                if ($scope.insuranceStudyFinancialInfo.doPayLoans) {
                    $scope.insuranceStudyFinancialInfo.doInternationalOperations = true;
                }
                if ($scope.insuranceStudyFinancialInfo.doTransactions) {
                    $scope.insuranceStudyFinancialInfo.doInternationalOperations = true;
                }


                $scope.insuranceStudyAssets = res.data.assets;

                if ($scope.insuranceStudyAssets.property1 || $scope.insuranceStudyAssets.property2) {
                    $scope.insuranceStudyAssets.hasProperties = true;
                }

                if ($scope.insuranceStudyAssets.vehicle1 || $scope.insuranceStudyAssets.vehicle2) {
                    $scope.insuranceStudyAssets.hasCars = true;
                }

                $scope.availableActions = res.data.availableActions;
            });
        }
    }
    $scope.isReadOnly();
}]);

person zerokira    schedule 26.01.2018    source источник
comment
опубликуйте код вашего IdentityVerificationWizardCtrl контроллера.   -  person Omar Einea    schedule 27.01.2018
comment
@OmarEinea Хорошо, это правильно.   -  person zerokira    schedule 27.01.2018
comment
Почему вы вводите $element в свой контроллер? Я не вижу, чтобы он использовался внутри него. Попробуйте удалить его и посмотрите, исчезла ли проблема.   -  person Omar Einea    schedule 27.01.2018
comment
Я уже пытался, но проблема все еще в @OmarEinea   -  person zerokira    schedule 29.01.2018
comment
Вы пробовали angular.module('virtualApp').controller('IdentityVerificatio‌​nWizardCtrl', ['$scope', 'upload', '$http', 'listing', '$routeParams', '$location', 'Dialogs', function($scope, upload, $http, listing, $routeParams, $location, Dialogs) { удалить $element ?   -  person Durga    schedule 29.01.2018
comment
@Durga Да, я пытался   -  person zerokira    schedule 29.01.2018
comment
Если вы удаляете эти оба $element, то, я думаю, вы не получите эту ошибку, потому что нет, где еще вы вводите $element   -  person Durga    schedule 29.01.2018
comment
может быть какое-то разрешение внутри сервера? что ты думаешь? @Дурга   -  person zerokira    schedule 29.01.2018
comment
@Pablo Пабло, вы проверили (в браузере), что все файлы JS загружены? поскольку проблема кажется связанной с сервером.   -  person Omar Einea    schedule 29.01.2018
comment
все файлы JS, они скомпилированы в один. Я использую Грант. @OmarEinea   -  person zerokira    schedule 29.01.2018
comment
@Pablo, и ты используешь его как на локальном хосте, так и на сервере? есть ли какие-либо различия между локальным хостом и сервером, которые, по вашему мнению, могут вызвать проблему?   -  person Omar Einea    schedule 29.01.2018
comment
@OmarEinea да, я не знаю, что может быть не так... :(   -  person zerokira    schedule 29.01.2018
comment
уже решил эту проблему, спасибо.   -  person zerokira    schedule 29.01.2018
comment
@Pablo Можете ли вы добавить то, что решило проблему, в качестве ответа на этот пост и отметить, что оно принято, таким образом, будущие пользователи, которые наткнутся на эту проблему, сочтут это полезным.   -  person Tyler    schedule 31.01.2018


Ответы (1)


Эта ошибка говорит о том, что вы используете неизвестную зависимость в своем контроллере. Здесь ошибка говорит о том, что «неизвестная зависимость» — это поставщик с именем $element.

! В angularjs есть 3 типа провайдеров: сервис, фабрика или провайдер.

2 причины, почему у вас может быть эта проблема:

1) Если в вашем проекте нет провайдеров (сервисов, фабрик или провайдеров) с именем $element, у вас не должно быть для него зависимости. В IdentityVerificationWizardCtrl

Вместо:

.controller('IdentityVerificationWizardCtrl', ['$scope', 'upload', '$http', 'listing', '$routeParams', '$location', 'Dialogs', '$element', function($scope, upload, $http, listing, $routeParams, $location, Dialogs, $element)

Напишите:

.controller('IdentityVerificationWizardCtrl', ['$scope', 'upload', '$http', 'listing', '$routeParams', '$location', 'Dialogs', function($scope, upload, $http, listing, $routeParams, $location, Dialog)

2) если у вас есть провайдер с именем $element , возможно, вы не вызвали его в свой index.html

PS: В angularjs $element — это параметр, используемый в функции ссылки и относящийся к элементу DOM. Итак, ИМО считает, что ваша ошибка связана с причиной 1.

person IsraGab    schedule 31.01.2018