2、弹出窗口 Alert

1、只是弹出框

/* --- page1.html ---*/

<ion-navbar *navbar>
  <ion-title>Tab 1</ion-title>
</ion-navbar>

<ion-content padding class="page1">
  <h2>Welcome to Ionic!</h2>

  <button (click) = "doAlert()">点击弹出窗口</button>

</ion-content>

/* --- page1.html ---*/

以下代码都用 page1.html

/* --- page1.js ---*/

import { Page, Alert, NavController } from ‘ionic-angular‘;

@Page({
  templateUrl: ‘build/pages/page1/page1.html‘
})

export class Page1 {
  static get parameters() {
    return [[NavController]];
  }

  constructor(nav) {
    this.nav = nav
  }

  doAlert() {

    let alert = Alert.create({
      title: ‘New Friend!‘,
      subTitle: ‘Your friend, Obi wan Kenobi, just accepted your friend request!‘,
      buttons: [‘OK‘]
    });

    this.nav.present(alert);

  }

}

/* --- page1.js ---*/

这样我们就创建好了一个弹出窗口。效果如下。

那么这样做的话应该只是 显示了一个展示效果。 如果我想在这个弹出框内 输入信息呢?可以这样做。

2、带有input的弹出框

/* --- page1.js ---*/

import { Page, Alert, NavController } from ‘ionic-angular‘;

@Page({
  templateUrl: ‘build/pages/page1/page1.html‘
})

export class Page1 {
  static get parameters() {
    return [[NavController]];
  }

  constructor(nav) {
    this.nav = nav
  }

  doAlert() {

    let prompt = Alert.create({
      title: ‘Login‘,
      message: "Enter a name for this new album you‘re so keen on adding",
      inputs: [
        {
          name: ‘userName‘,
          placeholder: ‘userName‘
        },
        {
          name: ‘passWord‘,
          placeholder: ‘passWord‘
        },
      ],
      buttons: [
        {
          text: ‘Cancel‘,
          handler: data => {
            console.log(‘Cancel clicked‘);
          }
        },
        {
          text: ‘login‘,
          handler: data => {
            console.log(‘login in‘);
            console.log(data)
          }
        }
      ]
    });

    this.nav.present(prompt);

  }

}

/* --- page1.js ---*/

看 紫色部分的 代码意思 就是创建了两个 input 然后 赋予两个 name 然后在看 深蓝部分 的 buttons 中 同样创建了两个方法 而input得到的值 紫色部分 的 红色部分 userName 和 password

传给了。 深蓝部分  的 红色部分 也就是 buttons 中的 handler 参数的 data 获取之后  就可以处理他了。效果图如下。

当我在 输入内容的时候 点击 login 时候 看 他会打印出  {userName: "admin", passWord: "admin888"} 

3、按钮的功能

/* --- page1.js ---*/

export class Page1 {
  static get parameters() {
    return [[NavController]];
  }

  constructor(nav) {
    this.nav = nav
  }

  doAlert() {

    let confirm = Alert.create({
      title: ‘Use this lightsaber?‘,
      message: ‘Do you agree to use this lightsaber to do good across the intergalactic galaxy?‘,
      buttons: [
        {
          text: ‘Disagree‘,
          handler: () => {
            console.log(‘Disagree clicked‘);
          }
        },
        {
          text: ‘Agree‘,
          handler: () => {
            console.log(‘Agree clicked‘);
          }
        }
      ]
    });

    this.nav.present(confirm);

  }

}

/* --- page1.js ---*/

其实看完 1小节的时候 发现ok并没有方法 只能起到一个提示作用,但是在看完2小节的时候button是可以传一个数组的。。所以3小节的代码基本上都可以看的懂。

4、对象形式的弹出框。

以上方式都可以对一些 input 进行操作 。那么问题来了。当我有 radio 这种属性的时候 该怎么解决呢?对象形式满足你。

/* --- page1.js ---*/

import { Page, Alert, NavController } from ‘ionic-angular‘;

@Page({
  templateUrl: ‘build/pages/page1/page1.html‘
})

export class Page1 {
  static get parameters() {
    return [[NavController]];
  }

  constructor(nav) {
    this.nav = nav
  }

  doAlert() {

    let alert = Alert.create();
    alert.setTitle(‘Lightsaber color‘);

    alert.addInput({
      type: ‘radio‘,
      label: ‘Blue‘,
      value: ‘blue‘,
      checked: true
    });

    alert.addButton(‘Cancel‘);
    alert.addButton({
      text: ‘OK‘,
      handler: data => {
        this.testRadioOpen = false;
        this.testRadioResult = data;
      }
    });

    this.nav.present(alert);

  }

}

/* --- page1.js ---*/

当然 还有 checkbox

/* --- page1.js ---*/

import { Page, Alert, NavController } from ‘ionic-angular‘;

@Page({
  templateUrl: ‘build/pages/page1/page1.html‘
})

export class Page1 {
  static get parameters() {
    return [[NavController]];
  }

  constructor(nav) {
    this.nav = nav
  }

  doAlert() {

    let alert = Alert.create();
    alert.setTitle(‘Which planets have you visited?‘);

    alert.addInput({
      type: ‘checkbox‘,
      label: ‘Alderaan‘,
      value: ‘value1‘,
      checked: true
    });

    alert.addInput({
      type: ‘checkbox‘,
      label: ‘Bespin‘,
      value: ‘value2‘
    });

    alert.addButton(‘Cancel‘);
    alert.addButton({
      text: ‘Okay‘,
      handler: data => {
        console.log(‘Checkbox data:‘, data);
        this.testCheckboxOpen = false;
        this.testCheckboxResult = data;
      }
    });

    this.nav.present(alert);

  }

}

/* --- page1.js ---*/

这种对象模式 知道就好了。基本用户需要这种复杂的操作的时候 就直接跳转页面写样式就好了 不然的话样式会很死板。

弹出框我建议最好做一些 提示会比较好。

时间: 2024-10-28 11:17:52

2、弹出窗口 Alert的相关文章

javascript 中的console.log和弹出窗口alert

主要是方便你调式javascript用的.你可以看到你在页面中输出的内容. 相比alert他的优点是: 他能看到结构话的东西,如果是alert,淡出一个对象就是[object object],但是console能看到对象的内容. console不会打断你页面的操作,如果用alert弹出来内容,那么页面就死了,但是console输出内容后你页面还可以正常操作. console里面的内容非常丰富,你可以在控制台输入:console,然后就可看到:Console {memory: MemoryInfo

ExtJs--02--MessageBox相关弹出窗口alert,prompt,confirm采用

/* Ext.onReady(function(){ Ext.MessageBox.alert("jack","tom"); Ext.MessageBox.alert("标题","提示信息",function(btn){ Ext.MessageBox.alert("小标题","您点击的是 " + btn ); },this); });*/ /* Ext.onReady(function(

软件测试---弹出窗口

视频地址(第五课时):https://pan.baidu.com/s/1gfLVC2n  alert 弹出窗口 Alert Should Be Present Get Alert Message  confirm 弹出窗口 Choose Cancel On Next Confirmation Choose Ok On Next Confirmation Confirm Action AutoIt Libary

[Selenium]对弹出的Alert窗口进行操作

? 1 2 Alert alert = driver.switchTo().alert(); alert.accept(); [Selenium]对弹出的Alert窗口进行操作

重写alert弹出窗口样式

<script> window.alert = function(str)    {     var shield = document.createElement("DIV");     shield.id = "shield";     shield.style.position = "absolute";     shield.style.left = "0px";     shield.style.top

JS中,根据div数值判断弹出窗口

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> div{ width: 50px; height: 50px; margin: 20px; float: left; border: 1px solid orange; } </style>

asp .NET弹出窗口 汇总(精华,麒麟创想)

asp .NET弹出窗口 汇总(精华,麒麟创想) 注://关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javascript>window.close();</script>"); //关闭,父窗口和子窗口都不弹出对话框,直接关闭 this.Response.Write("<script>");this.Response.Write("{top.ope

asp .NET弹出窗口汇总

注://关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javascript>window.close();</script>"); //关闭,父窗口和子窗口都不弹出对话框,直接关闭 this.Response.Write("<script>");this.Response.Write("{top.opener =null;top.close();}&q

jquery Jbox 插件实现弹出窗口在修改的数据之后,关闭弹出窗口刷新父页面的问题

http://blog.csdn.net/nsdnresponsibility/article/details/51282797 问题如题: 这里我们在父页面定义一个全局的变量来标识是否需要刷新父页面(声明:下图中点击保存页面之后,不关闭子页面):点击1出弹出窗口: 我们的目的是:如果,用户保存过数据:在点击关闭按钮和2处所指的小X时,刷新父列表页面:若果用户没有保存过数据,关闭窗口是不刷新父列表页面. //这里是父页面(列表页面) var isFreshFlag="1";<%-