У меня проблема с функцией открытия $ uibModal, в частности, с правильным вводом моих параметров в функцию встроенного контроллера.
Будучи новичком angularjs, я пробовал несколько вещей, ни одну из которых я не могу заставить работать.
Я использую код Visual Studio для написания угловых и глоткачтобы построить его.
Моя первая попытка (с использованием встроенной функции):
var modalInstance = $uibModal.open({
animation: false,
templateUrl: 'app/workform/LoanActions/LoanActionOverpay.modal.html',
controller: function ($scope, $uibModalInstance) {
$scope.showOverpay = true;
$scope.OverpayAccount = function () {
$scope.loading = true;
var key = loanKeyFactory.getLoanKey();
loanFactory.getLoanInformation(key).then(function (response) {
$scope.loanType = response.LoanType;
$uibModalInstance.dismiss('cancel');
if ($scope.loanType == 'LineOfCredit')
ChooseLocLoanStatus();
else
CreatePayment(true, null);
});
};
$scope.cancel = function () {
$uibModalInstance.dismiss('cancel');
ClearForm();
}
},
size: 'md',
backdrop: 'static',
keyboard: false
})
Я не получил ошибок при запуске gulp serve-build
из кода VS, и код был выполнен, как и ожидалось.Однако после сборки и выпуска в TFS я получаю эту ошибку: [$injector:unpr] Unknown provider: eProvider <- e
.
Моя вторая попытка:
var modalInstance = $uibModal.open({
animation: false,
templateUrl: 'app/workform/LoanActions/LoanActionOverpay.modal.html',
controller: OverpayCtrl,
size: 'md',
backdrop: 'static',
keyboard: false
})
var OverpayCtrl = function ($scope, $uibModalInstance) {
$scope.showOverpay = true;
$scope.OverpayAccount = function () {
$scope.loading = true;
var key = loanKeyFactory.getLoanKey();
loanFactory.getLoanInformation(key).then(function (response) {
$scope.loanType = response.LoanType;
$uibModalInstance.dismiss('cancel');
if ($scope.loanType == 'LineOfCredit') {
ChooseLocLoanStatus();
}
else {
CreatePayment(true, null);
}
});
};
$scope.cancel = function () {
$uibModalInstance.dismiss('cancel');
ClearForm();
};
}
Я получил те же результаты, что и моя первая попытка, т.е. нетошибки при запуске gulp serve-build
из кода VS и кода, выполняемого как ожидалось.Но я получил ту же ошибку после сборки и выпуска в TFS: [$injector:unpr] Unknown provider: eProvider <- e
.
После еще нескольких неудачных попыток, которые я опущу, чтобы сэкономить место, я вернулся и провел еще несколько исследований своего первогопопытка.Благодаря принятым ответам на этот пост и этот пост , я обнаружил, что из-за минимизации мне нужно было настроить способ ввода моих параметров $scope
и $uibModalInstance
в мойфункция встроенного контроллера. Этот принятый ответ предлагает использовать расширенный синтаксис.
Моя последняя попытка и где я сейчас нахожусь:
var modalInstance = $uibModal.open({
animation: false,
templateUrl: 'app/workform/LoanActions/LoanActionOverpay.modal.html',
controller: ['$scope, $uibModalInstance', function ($scope, $uibModalInstance) {
$scope.showOverpay = true;
$scope.OverpayAccount = function () {
$scope.loading = true;
var key = loanKeyFactory.getLoanKey();
loanFactory.getLoanInformation(key).then(function (response) {
$scope.loanType = response.LoanType;
$uibModalInstance.dismiss('cancel');
if ($scope.loanType == 'LineOfCredit')
ChooseLocLoanStatus();
else
CreatePayment(true, null);
});
};
$scope.cancel = function () {
$uibModalInstance.dismiss('cancel');
ClearForm();
}
}],
size: 'md',
backdrop: 'static',
keyboard: false
})
Хотя я не получил никакой сборкиошибки из кода VS, при попытке выполнить код я получил эту ошибку: [$injector:unpr] Unknown provider: $scope, $uibModalInstanceProvider <- $scope, $uibModalInstance
.
Я надеюсь, что кто-то может поделиться некоторым пониманием того, что я делаю неправильно.
Вопрос: Как мне ввести параметры в функцию встроенного контроллера?
ОБНОВЛЕНИЕ:
Просматривая мой код (моя последняя попытка), я понял пару вещей.
Во-первых, когда я вводил свои параметры в виде строк, я не вводил их в виде отдельных строк, то есть '$scope, $uibModalInstance'
вместо '$scope', '$uibModalInstance'
.
Второе, что я заметилбыло то, что я не вводил loanKeyFactory
или loanFactory
, оба из которых используются в функции.
После внесения этих изменений я подумал наверняка, что это сработает.Но так же, как и раньше, я мог заставить его собирать и выполнять локально, но не после сборки и выпуска в TFS.Я получил ту же ошибку [$injector:unpr] Unknown provider: eProvider <- e
, что и раньше.
ОБНОВЛЕНИЕ 2:
Хорошо, поэтому я не думаю Я идупсих.Но один из моих сотрудников спросил, могу ли я воспроизвести ошибку для него, чтобы он мог посмотреть.Я пошел на наш тестовый сервер, где TFS выпускает проект, и я не смог заставить его работать NOT !Это верно, это волшебно работает сейчас.Со вчерашнего дня я построил и выпустил отдельный проект.После этого я создал и выпустил тот же код , который раньше не работал, и теперь это так.Я не совсем понимаю, как создание новой сборки и выпуска с одним и тем же кодом могло бы «исправить» это, но я не жалуюсь.