【问题标题】:ionic2: how to dismiss modal from another pageionic2:如何从另一个页面关闭模式
【发布时间】:2017-08-27 13:20:22
【问题描述】:

我正在使用 Ionic2,我想将模态设置为页面的中心,当单击打开模态时,我希望其他页面不透明度为 0.7,当单击模态关闭的任何位置时,这是我的 Html 代码:

<ion-header>
<ion-navbar color="dark">
    <button ion-button icon-only menuToggle>
      <ion-icon name="menu"></ion-icon>
    </button>

    <ion-title>Product</ion-title>
    <ion-buttons end mode="md" (click)="sharePost()">
        <button ion-button icon-only no-padding no-margin>
            <ion-icon name="md-share"></ion-icon>
        </button>
    </ion-buttons>

</ion-navbar>

</ion-header>


<ion-content id="body" (click)="closeModal()">

</ion-content>

.ts

import { ReviewPage } from '../review/review';
import { DescriptionPage } from '../description/description';
import { Component, ViewChild } from '@angular/core';
import { ModalController, NavController, NavParams, PopoverController, 
ViewController } from 'ionic-angular';
import { ShareOptionsPage } from '../share-options/share-options';

@Component({
 selector: 'page-product',
 templateUrl: 'product.html',
})
export class ProductPage {

contactModal;
firstViewCtrl;

constructor(public modalCtrl: ModalController,public navCtrl: 
 NavController, public navParams: NavParams,public popoverCtrl: 
 PopoverController,public viewCtr:ViewController) {
}

sharePost() {
 this.contactModal = this.modalCtrl.create(ShareOptionsPage, 
  {showBackdrop: true, enableBackdropDismiss: true});
 this.contactModal.present();
 this.firstViewCtrl = this.navCtrl.first();
}

closeModal() {

 if(this.contactModal != null) {
  this.firstViewCtrl.dismiss()
 }
}
}

但它不起作用,我该怎么办?

【问题讨论】:

    标签: ionic-framework ionic2


    【解决方案1】:

    如果您的意思是如何从另一个页面关闭模式,那么您可以在模式页面或另一个页面(私有 ​​viewCtrl:ViewController)中注入 ViewController,然后调用 viewCtrl.dismiss()

    如果您的意思是如何更改不透明度,那么您可以在模式选项中设置一个您自己定义的 CSS 类。

    希望对您有所帮助。

    【讨论】:

    • 是的,但是如果我在产品页面中使用 viewCtrl.dismiss() 它会关闭产品页面本身而不是模式,如果我单击产品页面中的任何位置,我想关闭模式,因为是打开到页面的中间
    • 模态选项中的 enableBackdropDismiss 应该可以处理这个问题
    • @minigeek 而不是编辑,即使您的更改是一个实际的改进,我建议写另一个答案。最好避免与原作者的意图发生冲突。
    猜你喜欢
    • 1970-01-01
    • 2022-08-16
    • 2019-03-14
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多