Назначение компонента
Компонент модального диалога в технологии Flexberry Ember предназначен для предоставления пользователю выбора между двумя вариантами во всплывающем окне.
Обзор возможностей и API компонента
Компонент модального диалога реализован на базе компонента Semantic UI Modal. Список настроек:
caption- текст заголовка окнаcontent- текст внутри модального окошкаcontentClass- классы, применяемые к контенту модального окнаapproveButtonCaption- подпись кнопки подтверждения (по умолчанию “Ок”)denyButtonCaption- подпись кнопки несогласия (по умолчанию “Отмена”)allowMultiple- разрешить показывать несколько модальных оконvisible- атрибут, позволяющий показать модальное окно на странице
Настройки передаются:
offset- величина вертикального отступа (по умолчанию0)allowMultiple- разрешить открывать несколько модальных окон (по умолчаниюfalse)closable- разрешить закрывать окно по клику на область вне окнаtransition- название перехода для показа модального окна (по умолчаниюscale) - см. список переходовduration- длительность анимации показа модального окна
Список доступных callbacks:
beforeShow- перед появлением модального окнаbeforeHide- перед скрытием модального окнаshow- в момент появления модального окнаhide- в момент скрытия модального окнаapprove- в момент нажатия на кнопку согласияdeny- в момент нажатия на кнопку отмены
Во все callback единственным параметром передаётся событие (тип object). Событие имеет атрибут target - объект, возвращаемый методом modal из Semantic UI. События beforeHide, approve и deny имеют атрибут closeDialog, позволяющий отменить скрытие модального окна. Если значение перевести в false внутри callback, окно не будет закрыто.
Пример использования
{{#flexberry-dialog
caption="Подтвердите выбор"
content="Картинка будет удалена! Вы уверены?"
visible=visible
beforeHide=(action "onBeforeHide")
approve=(action "deleteRecord")
}}
<img src="{{img_src}}" />
{{/flexberry-dialog}}
Для показа модального диалога, необходимо перевести атрибут visible в true.
this.set('visible', true);
Пример использования callback с отменой показа модального окна:
actions: {
onBeforeHide(e) {
if (2 + 2 == 4) {
e.closeDialog = false; // отменяет скрытие модального окна (окно остаётся на месте)
}
}
}