在提示警报中选择时间ionic-2

时间:2016-12-21 12:44:17

标签: angular ionic2

我是离子-2的新手。我正在开发一个应用程序,用户必须在其中创建警报。为此,我创建了一个页面。该页面包含' +'按钮。单击该按钮时,将显示提示警报。截至目前,该提示警报有一个文本框和确定按钮。但是,而不是我需要显示日期时间选择器。我怎样才能做到这一点?有什么帮助吗?

my html file:
<ion-header>
    <ion-navbar color="primary">
        <ion-title>Alarm</ion-title>
    </ion-navbar>
</ion-header>

<ion-content padding>
    <ion-fab right bottom>
        <button ion-fab (click)="alarm()" color="vibrant" mini>
            <ion-icon name="add"></ion-icon>
        </button>
    </ion-fab>
</ion-content>

my ts file:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

import { AlertController } from 'ionic-angular';

@Component({
  selector: 'page-wifi-controller-schedules',
  templateUrl: 'wifi-controller-schedules.html'
})
export class AlarmsPage {

  constructor(public navCtrl: NavController, public alertCtrl: AlertController) {}



  alarm() {
    let prompt = this.alertCtrl.create({
      title: 'Login',
      message: "Enter a name for this new album you're so keen on adding",
      inputs: [
        {
          name: 'title',
          placeholder: 'Title'
        },
      ],
      buttons: [
        {
          text: 'Cancel',
          handler: data => {
            console.log('Cancel clicked');
          }
        },
        {
          text: 'Save',
          handler: data => {
            console.log('Saved clicked');
          }
        }
      ]
    });
    prompt.present();
  }
}

2 个答案:

答案 0 :(得分:7)

对于日期选择器,您可以将type = 'date'添加到input对象(inputs内)

inputs: [
        {
          name: 'title',
          placeholder: 'Title',
          type: 'date'
        },
      ],

但这不是HH24:mm格式,所以它将是一个日期选择器......

就像Mike Harringtonthis issue的答案中所说的那样,警报的最终目标不是做这些事情。

但是由于导航堆栈在页面顶部堆叠模态,您只需创建模态docs),给它一些填充,设置背景{ {1}}当用户按下按钮/关闭页面时,用你的数据关闭模态(或调用服务,不确定你的用例)。

因此,如果您创建一个名为rgba(0,0,0,0.85)并且选择器为Page1的子页面(带有时间选择器),您只需添加以下css:

page1

然后创建一个页面模态,如

page1.modal {
    padding: 30px;
    background: rgba(0,0,0,0.5);
}

来自Custom Modal Alert with HTML Form的CSS和图片

修改

如果您想将数据从第二页(模态)传递到第一页(父级),您可以使用ionic的Events(我最喜欢的组件之一)

父页面:(在import { ModalController } from 'ionic/angular'; import { Page1 } from './page1.component'; ....... constructor(public modalCtrl: ModalController) { ... } showModal() { let timepickModal = this.modalCtrl.create(Page1); timepickModal.present(); } ..... ngOnInit f.e。内)

constructor

模态页面:(选择时间/提交值后)

events.subscribe('time:created', time) => {
  // time is passed from modal to here, add it to list.
  myTimeList.push(time);
});

(导入:events.publish('time:created', someObjectHoldingTime);

答案 1 :(得分:1)

inputs: [
        {
          type: 'date',
          name: 'title',
          placeholder: 'Title'
        },
      ]

似乎在浏览器中有效。 您可以尝试使用cssClass属性进行调整。 我会选择popover