Модульный объект формы диалога AngularJS в контроллере не определен
У нас есть страница, которая открывает модальное диалоговое окно с формой, как показано ниже. Однако, когда мы нажимаем на контроллер, который должен обрабатывать действие формы, объект формы не определен, и я слишком новичок в Angular, чтобы понять, почему ...
Это родительский контроллер страницы содержит функцию для открытия модального диалога:
app.controller('organisationStructureController', ['$scope', ..., '$modal', function ($scope, ..., $modal) {
$scope.openInvitationDialog = function (targetOrganisationId) {
$modal.open({
templateUrl: 'send-invitation.html',
controller: 'sendInvitationController',
resolve: {$targetOrganisationId: function () {
return targetOrganisationId;
}
}
}
);
};
на такой странице:
// inside a loop over organisations
<a ng-click="openInvitationDialog({{organisation.id}})">Invite new member</a>
HTML-диалог приглашения выглядит так:
Email
<span class="error animated fadeIn" ng-show="invitationForm.email.$dirty && invitationForm.email.$error.required">Please enter an email address!</span>
<span class="error animated fadeIn" ng-show="invitationForm.email.$error.email">Invalid email</span>
Cancel
Invite
Контроллер, который должен обработать приглашение, находится где-то еще:
app.controller('sendInvitationController', ['$targetOrganisationId', '$scope', ...,
function ($targetOrganisationId, $scope, ...) {
$scope.invitation = {
// ...
targetOrganisation: {
id: $targetOrganisationId
}
};
$scope.sendInvitation = function () {
// $scope.invitationForm is undefined
if ($scope.invitationForm.$invalid) {
return false;
}
// send the invitation...
};
}]);
И что'правильный способ получить область формы в контроллер?
Может быть, мне нужно ввести$modal
вsendInvitationController
и добавитьsendInvitation
функция к этому? Но когда я это делаю, действие никогда не попадает в контроллер. Или мне нужно добавить функцию, которая обрабатывает действие отправки$modal.open({ ...
вместо ссылки на контроллер? Хотя я'Я бы предпочел иметь sendInvitationController в своем собственном файле и области видимости.
Спасибо за любую помощь!
РЕДАКТИРОВАТЬ
Мы нашли несколько вещей, которые помогли нам найти обходной путь и могли бы помочь кому-то ответить на этот вопрос:
$scope.invitation
объект не является неопределенным вsendInvitationController
но содержит правильные данные, в то время как$scope.invitationForm
остается неопределенным.внутри send-приглашение.html мы можем получить доступ$scope.invitationForm.$invalid
и сделайте проверку прямо здесь:Invite
Таким образом, вопрос заключается в следующем: почему связываниеinvitationForm
возражать против$scope
не удается отправить, пока модель формы связывается правильно?