如何在复选框中显示数组元素 - 离子

Posted

技术标签:

【中文标题】如何在复选框中显示数组元素 - 离子【英文标题】:how to display array element within check boxes - ionic 【发布时间】:2018-05-08 21:49:42 【问题描述】:

我有一个简单的问题,我正在将数据从 firebase 检索到数组列表中。我想用复选框显示这个数组。你能帮忙吗? firebase 的列表数组(任务)已准备就绪,只是试图在复选框中显示它.. “event.target”类型中不存在“checked”属性

这里是ts代码:

let currentUid=this.afAuth.auth.currentUser.uid.valueOf();
    this.items = afDB.list('ToDoList/'+currentUid).valueChanges();
    this.items.subscribe((data)=>
      console.log(""+ data);
      this.tasks = data;

checked($event)
    if(event.target.checked==true)
    

    
    else
    

    
  

html代码:

<ion-item class="text" *ngFor="let task of tasks">
          <input type="checkbox" (change)="checked($event,task)"/>

【问题讨论】:

向我们展示您的 JSON 结构。确保您有一些属性来检查选择状态。例如。 [名称:“香肠”,检查:真];试试这个示例stackblitz.com/edit/ionic-checkbox-radio checked(event,task) if(event.target.checked==true) console.log(task); /*var delItems = this.afDB.list('ToDoList/'+this.currentUid); // 删除文件 delItems.delete().then(function() // 文件删除成功 ).catch(function(error) // 呃,出错了! ); */ 其他 【参考方案1】:

您已经非常接近了,您只需将 change 事件绑定更改为 ionChange (docs) 并处理 $event 有点不同。

请查看此 Stackblitz projectHomePage 以获取工作演示。

组件:

@Component(...)
export class HomePage 

  public tasks = [
    "Task 1",
    "Task 2",
    "Task 3"
  ];

  constructor(public navCtrl: NavController) 

  checked(event: any, task: any)
    const isChecked = event.checked;

    // Here you can include your custom logic
    // to handle what happens when the checkbox
    // is checked or unchecked :)

    if(isChecked) 
      console.log(`The task $task is checked!`)

      // ...
      // ...
     else 
      console.log(`The task $task is unchecked!`)

      // ...
      // ...
    
  

请注意,该方法同时接收event 和选定的task,您可以使用event.checked 来获取复选框的状态。

查看:

<ion-header>
  <ion-navbar>
    <ion-title>Home</ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  <!-- ... -->

  <ion-list>
    <ion-item *ngFor="let task of tasks">
      <ion-label> task </ion-label>
      <ion-checkbox (ionChange)="checked($event, task)"></ion-checkbox>
    </ion-item>
  </ion-list>
</ion-content>

【讨论】:

以上是关于如何在复选框中显示数组元素 - 离子的主要内容,如果未能解决你的问题,请参考以下文章

复选框的离子选择 UI

如何在离子切换中放置文本

如何在Angular2中显示和隐藏带有复选框元素的div?

如何刷过不同的离子标签

如何获取数组的每个元素? [关闭]

如何在离子中的另一个组件中使用一个组件?