Назначение компонента
Компонент модального диалога в технологии 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; // отменяет скрытие модального окна (окно остаётся на месте)
}
}
}