Я хотел бы создать глобальный модальный режим для отчетов о проблемах в моем приложении Ionic. На нескольких страницах моего приложения у меня есть кнопка «Сообщить о проблеме», которая должна открыть модальное окно, содержащее форму.
Модальное окно одинаковое для каждой страницы (форма с описанием проблемы), однако иногда мне хочется передать ему дополнительные данные. IE:
- Я нахожусь в представлении «itemA», нажимаю кнопку «Сообщить о проблеме», я хочу прикрепить «itemA.id» к проблеме.
- Я на главной странице, нажимаю "Сообщить о проблеме", отправляет только описание проблемы.
Требования:
- Я использую $ionicModal
- Я бы не хотел загрязнять $rootScope.
- Я хотел бы максимально избежать дублирования кода (не определяя модальное поведение в каждом контроллере..)
- Я бы не хотел хранить эти дополнительные данные о проблемах в глобальной переменной var.
- Я хотел бы отобразить еще один «модальный успех», когда отправка формы прошла успешно.
В идеале единственный код в каждом контроллере должен быть
.controller('Ctrl', function($scope, $issueModal){
$scope.reportIssue = function(){
$issueModal.show({item_id: 42});
}
});
Я попробовал эту реализацию, но не удовлетворен по следующим причинам:
- Он не обрабатывает события "$destroy" из родительского представления.
- Я создаю новое модальное окно каждый раз, когда вызываю ".show()", поэтому мне нужно уничтожить модальное окно всякий раз, когда оно закрыто или "скрыто".
Буду благодарен тому, кто подскажет дорогу!