带有可变输入的Ionic3操作表

时间:2018-04-21 09:33:25

标签: ionic-framework ionic3 alert google-cloud-firestore uiactionsheet

我需要创建一个操作表或其他类型的警报,向用户显示选项并保存他们在变量中单击的选项。但是,显示给用户的选项需要从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();

}

如果有人可以帮助我,或者建议另一种方法,我真的很感激。

提前致谢!

1 个答案:

答案 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正在运行的代码。