我的基本警报有一个小问题。所以这是我的情况。->我单击页面上的提交按钮,如果没有记录返回,它将给我一条警报消息。我单击“确定”以消除该问题。 - 工作正常。->通过提供无效的输入,我第二次重复相同的情况,这样我就不会再得到记录,并且应用程序会再次向我发出相同的警报。我单击确定以消除警报-不起作用。可以帮忙吗?这是我获取记录的代码:
fetchGroupMembers(form) {
//referring this to obj because scope of this is confusing in callback functions
var obj = this;
//creating loader
let loading = Loading.create({
content: "Please wait...",
});
//Showing loader on current screen
obj.nav.present(loading);
//Send message to server to fetch the group members
obj.myGlobals.socket.emit('fetchGroupMembers', { groupCode: form.controls['groupCode'].value });
obj.myGlobals.socket.on('groupMembers', function (result) {
while (obj.students.pop()); //removing all elements from array of students
//fetching each record and creating student
result.forEach(function (record) {
obj.students.push(new Student(record));
});
//on successfull fetch dismiss the loader
loading.dismiss();
if (obj.students.length > 0) {
//set students to global
obj.myGlobals.students = obj.students
//navigating to next page with parameters
obj.nav.push(HostPage, {
Students: obj.students
});
console.log(obj.nav);
} else {
//creating alert
obj.doAlert();
}
});
}
doAlert() {
let alert = Alert.create({
title: 'No Student Found!!',
subTitle: "Please check group code. can't find students!!",
buttons: ['OK']
});
this.nav.present(alert);
}
}
如果我在按钮上调用doAlert(),请单击。它像魅力一样工作。我无法弄清楚为什么它在我的方案中不起作用的问题。任何帮助,将不胜感激。谢谢,
正如Alert类文档中讨论的那样,正确的方法是等待Alert.dismiss()调用返回的promise来解决:
public TEST = () => {
let alert1 : Alert = Alert.create({
title: 'Prompt 1',
message: "First",
buttons: [{
text : 'OK',
handler : () => {
console.log("First OK");
alert1.dismiss().then(() => { // wait for the previous transition to finish or the following alert will malfunction
let alert2 : Alert = Alert.create({
title : 'Prompt 2',
message : "Second",
buttons : [{
text : 'OK',
handler : () => {
console.log("Second OK");
alert2.dismiss(); // DISMISSING MANUALLY
}
}]
});
this.nav.present(alert2);
});
}
}]
});
this.nav.present(alert1);
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句