我需要创建一个操作表或其他类型的警报,向用户显示选项并保存他们在变量中单击的选项。但是,显示给用户的选项需要从Firestore检索,并且每个用户都有所不同(每个用户也可能有不同数量的选项)。
我已经能够在动作表中显示这些选项,但我很难获得他们点击的选项的价值。
以下是我目前为止的功能代码。从Firestore检索的选项列表保存在名为“options”的数组中。
categorizeProblem(){
this.action = this.actionCtrl.create({
title: "What sort of problem did this student have?",
})
this.options.forEach(option => {
var button = {
text: option,
value: //option name
handler: (data)=> {
//Need to get the value/name of the option clicked and save this in a variable
}
}
this.action.addButton(button);
})
this.action.present();
}
如果有人可以帮助我,或者建议另一种方法,我真的很感激。
提前致谢!
答案 0 :(得分:1)
您可以使用text
属性作为标识符。然后,您的handler
应该使用旧的函数语法,因此您将拥有handler
' s this
的值。
可能听起来令人困惑,但这里的代码应该清楚地证明我的观点。
presentActionSheet() {
var self = this;
let options = [
"Option1",
"Option2",
"Option3"
];
let actionSheet = this.actionSheetCtrl.create({
title: 'Categories',
});
options.forEach(option => {
actionSheet.addButton({
text: option,
handler: function() {
self.selectedOption = this.text;
}
})
});
actionSheet.present();
}
Here's正在运行的代码。