Alert

对话框 / Alert对话框组件

对话框作为和用户交互的弹出层组件, 向用户提供操作选择或操作列表, 让使用者作出决定。 这里的对话框可以是: Alert/Confirm/Radios/Checkboxes/Input等.

这里需要注意的是, Select组件使用的就是Radio/Checkboxes这两模式的封装, 但是单选多选两者只能选一个模式出现. 另外, 对于Input类文本输入, 可以混合使用,
比如url,email,text等,如果确认表单过多, 请单独开一页或者用modal组件处理.

关于buttons属性的说明

  • role属性: cancel只在ios下有用, 他会将标记cancel的button做特殊处理, 比如点击背景关闭则触发cancel的handler
  • cssClass属性: 这个属性用于自定义button的样式, 同理, 外层的cssClass用来定义整个弹层的样式
  • handler属性: 默认是关闭当前的组件, 可以通过Alert.dismiss()返回的Promise做后续处理, 他表示整个动画完毕

关于inputs属性的说明

  • inputs属性内type的属性的填值能改变弹出层的展现形式, 比如: input/checkbox/radio等三种形式.
  • 上述的三种形式一次只能选择一种, 这个是规定定死的.
  • 关于input的type类型: text/tel/number/email -> 对应的其余属性可以是: type/name/placeholder/value.
  • 关于input的type类型: checkbox/radio -> 对应的其余属性可以是: type/value/label/checked/disabled.
  • 以上如果混用是达不到效果的, 这个是Alert组件的使用约定.

使用注意

  • 建议在关闭弹出层动画后在处理关闭事项, 比如跳转/再次弹出提示等
  • 弹层组件全部对路由跳转相应, 比如路由切换则弹层自动关闭, 这个可以通过dismissOnPageChange设置
  • button超过三个则纵向排列
  • 更详细的示例请看demo
源码:

用法 / Usages

import { Alert } from 'vimo'

// Alert
Alert.present({
   title: 'Alert',
   message: '收到这个通知的人希望你今天能搞定这个alert组件',
   cssClass: 'alertCssOuterMain  ',
   enableBackdropDismiss: true,
   buttons: [
     {
       text: '确定',
       handler: (value) => {
         Alert.dismiss().then((data) => {
           console.debug('button3 click dismiss ')
           console.debug(data)
         });
       }
     }
   ]
});

// Input
input () {
  Alert.present({
    title: '登录iTunes Store',
    // subTitle: '收到这个通知的人希望你今天能搞定这个alert组件',
    message: '请输入您Apple ID"apple@icloud.com"的密码',
    cssClass: 'alertCssOuterMain  ',
    enableBackdropDismiss: true,
    inputs: [
      {
        type: 'password',
        name: 'password',
        placeholder: '密码',
        value: '',
      },
    ],
    buttons: [
      {
        text: '取消',
        role: 'cancel',
        handler: () => {}
      },
      {
        text: '确定',
        role: '',
        handler: (value) => {
          Alert.present({
            title: '请确认',
            // subTitle: '收到这个通知的人希望你今天能搞定这个alert组件',
            message: '您输入的信息:' + JSON.stringify(value),
            cssClass: '',
            enableBackdropDismiss: true,
            buttons: [
              {
                text: '确定',
                role: 'cancel',
                handler: (value) => {
                  Alert.dismiss().then(function (msg) {
                    console.log('alert input2 dismiss promise')
                  })
                }
              }
            ]
          }).then(function () {
            console.log('alert input2 present promise')
          })
        }
      }
    ]
  }).then(function () {
    console.log('alert input1 present promise')
  });
}

方法 / Methods

(inner) dismiss() → {Promise}

源码:

手动关闭组件, 当开启动画过度完毕时触发 Promiseresolve

(inner) present(options) → {Promise}

源码:

开启组件, 当开启动画过度完毕时触发 Promiseresolve

参数 / Parameters:
Name Type Description
options object

传入参数

Properties
Name Type Attributes Default Description
title String <optional>

标题

subTitle string <optional>

副标题

message string <optional>

消息文本

cssClass string <optional>

自定义样式

enableBackdropDismiss Boolean <optional>
true

允许点击backdrop关闭组件

dismissOnPageChange Boolean <optional>
true

路由切换关闭组件

mode string <optional>
ios

样式模式

isH5 string <optional>
false

强制使用H5组件(区别使用Hybrid提供的Alert方法)

buttons Array <optional>

button数组,包含全部role

Properties
Name Type Description
text Array

button显示文本

icon Array

button显示的icon的name, 具体参考Icon组件

role Array

可以是cancel(关闭)/destructive(警告/删除)/null

handler Array

默认是关闭组件

cssClass Array

自定义样式

inputs Array <optional>

如果alert中有input等form

Properties
Name Type Description
type Array

input的类型, 比如: text, tel, number, etc.

name Array

名称

placeholder Array

占位名称

value Array

label Array

标签名

checked Array

是否选中

id Array

id编号