【发布时间】:2020-05-21 16:33:39
【问题描述】:
我正在使用 IONIC 4,我遇到的情况听起来很傻,但我坚持下去了。
我有一个这样的模型类:
export class Media {
public id: number;
public name: string;
public description: string;
public episode: number;
public startDate: string;
public endDate: string;
public slates: any[];
constructor() {
this.id = 0;
this.name = "";
this.description = "";
this.startDate = "";
this.endDate = "";
this.episode = 1;
this.slates = [];
}
}
当我点击一个按钮时,我打开一个模式来插入这个媒体:
async goToNewMediaForm() {
const newMediaModal = await this.modalCtrl.create({
component: MediaNewPage
});
newMediaModal.present();
}
它打开了媒体的插入页面,基于我在下面发布的类,一切正常。
现在,当用户退出此模式时,我想做一些事情,所以我正在使用这样的东西:
async goToNewMediaForm() {
const newMediaModal = await this.modalCtrl.create({
component: MediaNewPage
});
newMediaModal.onDidDismiss().then(data => {
this.navCtrl.navigateForward("slate-list");
});
newMediaModal.present();
}
所以,我所做的就是将用户移动到另一个页面。但是我必须有一种方法来区分用户是单击保存还是只是单击了模式,从而将其关闭。我只是希望用户在点击保存时被转发到下一页,而不是取消模式。
当我 console.log 数据参数时,我有这个:
{data: Media, role: undefined}
data: Media
id: 23
name: "eeeee"
description: ""
startDate: ""
endDate: ""
episode: 1
slates: []
__proto__: Object
role: undefined
__proto__: Object
当用户点击模态框上的取消按钮时:
{data: undefined, role: undefined}
data: undefined
role: undefined
__proto__: Object
当用户在模态框外点击时:
{data: undefined, role: "backdrop"}
data: undefined
role: "backdrop"
__proto__: Object
我尝试测试数据是否是Media类型,如果是Media实例,则不成功..
console.log(data instanceof Media); //False
console.log(typeof data); //object
console.log(data === undefined); //False
console.log(data === "undefined"); //False
console.log(data == undefined); //False
console.log(data == "undefined"); //False
我错过了什么?如果它是一个对象,我如何测试这个“数据”变量,即使用户点击了模式或取消按钮?
【问题讨论】:
标签: javascript typescript ionic-framework ionic4