scoped アラートは、ユーザーに情報を提示したり、Inputを使ってユーザーから情報を収集したりするダイアログである。アラートはアプリのコンテンツの上に表示され、アプリとの対話を再開する前に、ユーザーが手動で解除する必要があります。また、オプションで header
、subHeader
、message
を持つことができます。
ion-alert
は、テンプレートに直接コンポーネントを記述して使用することができます。これにより、アラートを表示するために必要なハンドラの数を減らすことができます。
ion-alert
の isOpen
プロパティは、開発者がアプリケーションの状態からアラートの表示状態を制御することを可能にします。つまり、isOpen
を true
に設定するとアラートが表示され、isOpen
を false
に設定するとアラートは解除されます。
isOpen
は一方通行のデータバインディングを使用しているため、アラートが解除されたときに自動的に false
に設定されることはありません。開発者は ionAlertDidDismiss
または didDismiss
イベントを待ち、isOpen
を false
に設定する必要があります。この理由は、ion-alert
の内部がアプリケーションの状態と密接に結合するのを防ぐためである。一方通行のデータバインディングでは、アラートはリアクティブ変数が提供するブーリアン値だけを気にすればよい。双方向のデータバインディングでは、アラートはブーリアン値とリアクティブ変数の存在の両方に関心を持つ必要があります。これは、非決定的な動作につながり、アプリケーションのデバッグを困難にする可能性があります。
alertController
は、アラートを表示するタイミングや解除するタイミングをより細かく制御する必要がある場合に使用することができる。
buttons
の配列には、各buttonの text
のプロパティと、オプションで handler
を利用することができます。 handler
が false
を返した場合、buttonがクリックされてもAlertは自動的に解除されません。すべての buttons
は、左から右にボタン配列に追加された順序で表示されます。 Note: 一番右のボタン(配列の最後の1つ)がメインボタンです。
オプションで、cancel
のような role
プロパティをボタンに追加することができます。もし cancel
ロールがボタンのいずれかに設定されている場合、バックドロップをタップしてアラートが解除されると、キャンセルロールを持つボタンから handler が起動されます。
Alertには、複数の異なるInputを含めることもでき、そのデータをアプリで受け取ることができます。 Inputはユーザーに情報の入力を促す簡単な方法として使用できます。Radios, checkboxes と text inputs textarea はすべて利用できますが、これらを混ぜて利用することはできません。例えば、Alertはすべてbutton Inputであったり、すべてcheckboxでのInputを持つことはできますが、同一のAlertにradioとcheckbox Inputを混ぜることはできません。ただし、"text" Inputでは、 url
, email
, text
などの複数のtypeを混ぜて利用することはできます。アラートのガイドラインに収まらない複雑なForm UIが必要な場合は、代わりにModal内でFormを構築することをお勧めします。
Alertはscopedによるカプセル化を使用しており、実行時に各スタイルにクラスを追加することで自動的にCSSをスコープします。CSSでscopedセレクタをオーバーライドするには、higher specificity セレクタが必要です。
create
メソッドで cssClass
にカスタムクラスを渡し、それを使ってホストと内部要素にカスタムスタイルを追加することをお勧めします。このプロパティは、スペースで区切られた複数のクラスを受け付けることもできます。
.alert-wrapper { background : #e5e5e5 ; } .my-custom-class .alert-wrapper { background : #e5e5e5 ; }
Copy CSSカスタムプロパティ は、個々の要素をターゲットにすることなく、アラートのスタイルに使用することができます。
.my-custom-class { --background : #e5e5e5 ; }
Copy IonicのAngularアプリを構築する場合、スタイルはグローバルなスタイルシートファイルに追加する必要があります。
Alerts set aria properties in order to be accessible to screen readers, but these properties can be overridden if they aren't descriptive enough or don't align with how the alert is being used in an app.
Ionic automatically sets the Alert's role
to either alertdialog
if there are any inputs or buttons included, or alert
if there are none.
If the header
property is defined for the Alert, the aria-labelledby
attribute will be automatically set to the header's ID. The subHeader
element will be used as a fallback if header
is not defined. Similarly, the aria-describedby
attribute will be automatically set to the ID of the message
element if that property is defined.
ARIAの仕様に合わせるために、アラートには message
と header
または subHeader
を含めることを強くお勧めします。もし header
や subHeader
を含めない場合は、htmlAttributes
プロパティを使用して、説明的な aria-label
を指定することができます。
Angular Javascript React Vue const alert = await this . alertController . create ( { message : 'This is an alert with custom aria attributes.' , htmlAttributes : { 'aria-label' : 'alert dialog' , } , } ) ;
Copy const alert = await this . alertController . create ( { message : 'This is an alert with custom aria attributes.' , htmlAttributes : { 'aria-label' : 'alert dialog' , } , } ) ;
Copy useIonAlert ( { message : 'This is an alert with custom aria attributes.' , htmlAttributes : { 'aria-label' : 'alert dialog' , } , } ) ;
Copy const alert = await alertController . create ( { message : 'This is an alert with custom aria attributes.' , htmlAttributes : { 'aria-label' : 'alert dialog' , } , } ) ;
Copy All ARIA attributes can be manually overwritten by defining custom values in the htmlAttributes
property of the Alert.
Buttons containing text will be read by a screen reader. If a description other than the existing text is desired, a label can be set on the button by passing aria-label
to the htmlAttributes
property on the button.
Angular Javascript React Vue const alert = await this . alertController . create ( { header : 'Header' , buttons : [ { text : 'Exit' , htmlAttributes : { 'aria-label' : 'close' , } , } , ] , } ) ;
Copy const alert = await this . alertController . create ( { header : 'Header' , buttons : [ { text : 'Exit' , htmlAttributes : { 'aria-label' : 'close' , } , } , ] , } ) ;
Copy useIonAlert ( { header : 'Header' , buttons : [ { text : 'Exit' , htmlAttributes : { 'aria-label' : 'close' , } , } , ] , } ) ;
Copy const alert = await alertController . create ( { header : 'Header' , buttons : [ { text : 'Exit' , htmlAttributes : { 'aria-label' : 'close' , } , } , ] , } ) ;
Copy type AlertButtonOverlayHandler = boolean | void | { [ key : string ] : any } ; interface AlertButton { text : string ; role ? : 'cancel' | 'destructive' | string ; cssClass ? : string | string [ ] ; id ? : string ; htmlAttributes ? : { [ key : string ] : any } ; handler ? : ( value : any ) => AlertButtonOverlayHandler | Promise < AlertButtonOverlayHandler > ; }
Copy interface AlertInput { type ? : TextFieldTypes | 'checkbox' | 'radio' | 'textarea' ; name ? : string ; placeholder ? : string ; value ? : any ; label ? : string ; checked ? : boolean ; disabled ? : boolean ; id ? : string ; handler ? : ( input : AlertInput ) => void ; min ? : string | number ; max ? : string | number ; cssClass ? : string | string [ ] ; attributes ? : { [ key : string ] : any } ; tabindex ? : number ; }
Copy interface AlertOptions { header ? : string ; subHeader ? : string ; message ? : string | IonicSafeString ; cssClass ? : string | string [ ] ; inputs ? : AlertInput [ ] ; buttons ? : ( AlertButton | string ) [ ] ; backdropDismiss ? : boolean ; translucent ? : boolean ; animated ? : boolean ; htmlAttributes ? : { [ key : string ] : any } ; mode ? : Mode ; keyboardClose ? : boolean ; id ? : string ; enterAnimation ? : AnimationBuilder ; leaveAnimation ? : AnimationBuilder ; }
Copy Description true
の場合、アラートはアニメーションで表示されます。Attribute animated
Type boolean
Default true
Description true
の場合、バックドロップがクリックされるとアラートが解除される。Attribute backdrop-dismiss
Type boolean
Default true
Description アラートに追加されるボタンの配列。 Attribute undefined
Type (string | AlertButton)[]
Default []
Description カスタムCSSに適用する追加のクラス。複数のクラスを指定する場合は、スペースで区切る必要があります。 Attribute css-class
Type string | string[] | undefined
Default undefined
Description アラート提示時に使用するアニメーションです。 Attribute undefined
Type ((baseEl: any, opts?: any) => Animation) | undefined
Default undefined
Description アラートの見出しにあるメインタイトルです。 Attribute header
Type string | undefined
Default undefined
Description アラートに渡す追加属性。 Attribute undefined
Type undefined | { [key: string]: any; }
Default undefined
Description アラートに表示するInputの配列。 Attribute undefined
Type AlertInput[]
Default []
Description true
の場合、アラートは開く。もし false
ならば、アラートは閉じます。alertControllerやtrigger
プロパティを使用してください。注意: アラートが終了しても isOpen
は自動的に false
に戻りません。あなたのコードでそれを行う必要があります。Attribute is-open
Type boolean
Default false
Description true
の場合、オーバーレイが表示されたときにキーボードが自動的に解除されます。Attribute keyboard-close
Type boolean
Default true
Description アラートが解除されたときに使用するアニメーション。 Attribute undefined
Type ((baseEl: any, opts?: any) => Animation) | undefined
Default undefined
Description アラートに表示されるメインメッセージ。message
には、文字列としてプレーンテキストまたはHTMLのいずれかを指定することができます。通常HTML用に予約されている文字を表示するには、エスケープする必要があります。例えば、<Ionic>
は <Ionic>
になります:セキュリティ・ドキュメント このプロパティは、カスタムHTMLを文字列として受け付けます。デフォルトでは、コンテンツはプレーンテキストとしてパースされます。カスタムHTMLを使用するには、Ionicの設定で innerHTMLTemplatesEnabled
を true
に設定する必要があります。 Attribute message
Type IonicSafeString | string | undefined
Default undefined
Description modeは、どのプラットフォームのスタイルを使用するかを決定します。 Attribute mode
Type "ios" | "md"
Default undefined
Description アラートの見出しにあるサブタイトルです。タイトルの下に表示されます。 Attribute sub-header
Type string | undefined
Default undefined
Description true
の場合、アラートは半透明になります。modeが "ios"
で、デバイスが backdrop-filter
をサポートしている場合にのみ適用されます。Attribute translucent
Type boolean
Default false
Description クリックされるとアラートが開くトリガー要素に対応するID。 Attribute trigger
Type string | undefined
Default undefined
Name Description didDismiss
アラートが解除された後に発行されます。ionAlertDidDismissの略記。 didPresent
アラートが提示された後に発行されます。ionAlertWillDismissの略記。 ionAlertDidDismiss
アラートが解除された後に発行されます。 ionAlertDidPresent
アラートが提示された後に発行されます。 ionAlertWillDismiss
アラートが解除される前に発行されます。 ionAlertWillPresent
アラートが提示される前に発行されます。 willDismiss
アラートが解除される前に発行されます。ionAlertWillDismissの略記。 willPresent
アラートが提示される前に発行されます。ionAlertWillPresentの略記。
Description アラートオーバーレイが表示された後、解除します。 Signature dismiss(data?: any, role?: string) => Promise<boolean>
Description アラートが解除されたことを解決するPromiseを返します。 Signature onDidDismiss<T = any>() => Promise<OverlayEventDetail<T>>
Description アラートが解除されるタイミングを解決するPromiseを返します。 Signature onWillDismiss<T = any>() => Promise<OverlayEventDetail<T>>
Description アラートオーバーレイを作成した後に提示します。 Signature present() => Promise<void>
No CSS shadow parts available for this component.
Name Description --backdrop-opacity
背景の不透明度 --background
注意喚起の背景 --height
アラートの高さ --max-height
アラートの最大の高さ --max-width
アラートの最大幅 --min-height
アラートの最小の高さ --min-width
アラートの最小幅 --width
アラートの幅
No slots available for this component.