ons-dialog

実例

Dialogs

Normal dialogs are defined using the <ons-dialog> tag.

<ons-dialog id="dialog-1">
  This is a dialog!
</ons-dialog>

Dialogs are hidden by default and usually attached as direct children of the <body> tag.

Displaying a dialog

To display a dialog you need to get a reference to the element and execute the show(options) method.

document
  .getElementById('dialog-1')
  .show();

It is hidden with the hide(options) method.

Loading from a template

Another way to use dialogs is with the ons.createElement(template) utility function. The dialog needs to be defined as a template and the function returns a Promise that resolves to the dialog element.

<template id="dialog.html">
  <ons-dialog>
    This dialog is defined as a template.
  </ons-dialog>
</template>
ons
  .createElement('dialog.html', { append: true })
  .then(function(dialog) {
    dialog.show();
  });

Do not forget attaching the created dialog to the DOM. This can be done by passing append options to ons.createElement.

The “cancelable” attribute

<ons-dialog> supports the cancelable attribute. This enables hiding the dialog by tapping outside of it or by pressing the back button on Android devices.

<ons-dialog cancelable>
  This dialog can be cancelled!
</ons-dialog>

Try adding the cancelable attribute to the dialog to see how it works.

Complex dialogs

The <ons-dialog> element can get as complex as we need. It can contain pages or even navigators:

<ons-dialog>
  <ons-page>
    <ons-toolbar>...</ons-toolbar>

    ...
  </ons-page>
</ons-dialog>

関連情報

属性

名前 型 / デフォルト値 概要
modifier String ダイアログの表現を指定します。 Optional.
cancelable If this attribute is set the dialog can be closed by tapping the background or by pressing the back button on Android devices. (翻訳中) Optional.
disabled この属性がある時、ダイアログはdisabled状態になります。 Optional.
animation String
default
ダイアログを表示する際のアニメーション名を指定します。”none”もしくは”default”を指定できます。 Optional.
animation-options Expression アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。e.g. {duration: 0.2, delay: 1, timing: 'ease-in'} Optional.
mask-color String
rgba(0, 0, 0, 0.2)
背景のマスクの色を指定します。”rgba(0, 0, 0, 0.2)”がデフォルト値です。 Optional.

プロパティ概要

名前 概要
onDeviceBackButton バックボタンハンドラ。
visible 要素が見える場合にtrue
disabled 無効化されている場合にtrue
cancelable Whether the dialog is cancelable or not. A cancelable dialog can be closed by tapping the background or by pressing the back button on Android devices. (翻訳中)

プリセットのmodifier

Name 概要
material マテリアルデザインのダイアログを表示します。

メソッド

シグネチャ 概要
show([options]) ダイアログを開きます。
hide([options]) ダイアログを閉じます。
show([options]): Promise

ダイアログを開きます。

返り値: Resolves to the displayed element.

パラメーター
名前 概要
options Object オプションを指定するオブジェクト。
options.animation String アニメーション名を指定します。”none”, “slide”のいずれかを指定します。
options.animationOptions String アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: 'ease-in'}
options.callback Function ダイアログが表示され終わった後に呼び出される関数オブジェクトを指定します。
hide([options]): Promise

ダイアログを閉じます。

返り値:

パラメーター
名前 概要
options Object オプションを指定するオブジェクト。
options.animation String アニメーション名を指定します。”none”, “slide”のいずれかを指定できます。
options.animationOptions String アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: 'ease-in'}
options.callback Function ダイアログが隠れた後に呼び出される関数オブジェクトを指定します。

イベント

名前 概要
preshow ダイアログが表示される直前に発火します。
postshow ダイアログが表示された直後に発火します。
prehide ダイアログが隠れる直前に発火します。
posthide ダイアログが隠れた後に発火します。
preshow

ダイアログが表示される直前に発火します。

パラメーター
名前 概要
event Object Event object.
event.dialog Object コンポーネントのオブジェクト。
event.cancel Function この関数を実行すると、ダイアログの表示がキャンセルされます。
postshow

ダイアログが表示された直後に発火します。

パラメーター
名前 概要
event Object Event object.
event.dialog Object コンポーネントのオブジェクト。
prehide

ダイアログが隠れる直前に発火します。

パラメーター
名前 概要
event Object Event object.
event.dialog Object コンポーネントのオブジェクト。
event.cancel Function この関数を実行すると、ダイアログの非表示がキャンセルされます。
posthide

ダイアログが隠れた後に発火します。

パラメーター
名前 概要
event Object Event object.
event.dialog Object コンポーネントのオブジェクト。

お困りですか?

Onsen UIに関する質問は、Stack Overflowにてonsen-uiタグを付与してください。Onsen UIチームはあなたの問題解決をお手伝いします。

バグ報告や機能要望については、GitHub Issuesに記載をお願いいたします。

あわせて、下記の情報も参考にしてください。