Функция удаления не принимает значение параметра - PullRequest
0 голосов
/ 04 апреля 2019
Предоставленный код

может быть скомпилирован, но функция удаления не работает

Использование console.log ('{alarm.id}');alarm.id отображает не его значение, а строку.однако, если я добавлю кавычки к коду, такие как 'alarms / $ {' & 'alarm.id' & '}', он не сможет скомпилировать

alarm.page.ts

import { Component, OnInit } from '@angular/core';
import { AngularFireModule } from '@angular/fire';
import { AngularFirestore } from '@angular/fire/firestore';
import { ModalController } from '@ionic/angular';
import { AngularFireAuth } from '@angular/fire/auth';
import { AlarmAddPage } from './alarm-add/alarm-add.page';


@Component({
  selector: 'app-alarm',
  templateUrl: './alarm.page.html',
  styleUrls: ['./alarm.page.scss'],
})
export class AlarmPage implements OnInit {

  alarms = [];

  constructor(private db: AngularFirestore,
              private modalCtrl: ModalController,
              public afAuth: AngularFireAuth,) { }


  ngOnInit() {
    this.alarms=[];
    this.db.collection('alarms').stateChanges().subscribe(serverAlarms =>{
      serverAlarms.forEach(a=>{
        let alarm:any = a.payload.doc.data();
        alarm.id = a.payload.doc.id;
        this.alarms.push(alarm);
      });

    });


  };



  async add() {
    const modal = await this.modalCtrl.create({
      component: AlarmAddPage,
      backdropDismiss: false,
    });
    return await modal.present();
  }

  delete(alarm){
      this.db.doc('alarms/${alarm.id}').delete();
      console.log('{alarm.id}');
  }

}

alarm.page.html

<ion-header>
<ion-toolbar color="dark">
      <ion-buttons slot="start">
      <ion-menu-button></ion-menu-button>
    </ion-buttons>
    <ion-title>
      Alarms 
    </ion-title>    
  </ion-toolbar>
</ion-header>

<ion-content padding>
    <ion-list>
        <ion-item *ngFor="let alarm of alarms">
      <table><tr><th><h2>{{alarms.time}} &nbsp;&nbsp;</h2></th><td><table><tr><td>{{alarm.id}}</td></tr><tr><td>{{alarms.days}}</td></tr></table></td></tr></table>
      <ion-button (click)="delete(alarm)" color="light">Delete</ion-button>
    </ion-item>
    </ion-list>
  <ion-col>
      <div class="ion-text-center">
        <ion-button (click)="add()" color="light">Add Alarms</ion-button>
      </div>
  </ion-col>
</ion-content>

Я ожидаю, что с вашей помощью сработает функция удаления.не нарушая другой код.и я надеюсь, что вы не просто пришли сюда, чтобы исправить мой английский.полный код на https://github.com/iceraft/LimitRemoval.

1 Ответ

1 голос
/ 04 апреля 2019

Можете ли вы попробовать это

<ion-button (click)="delete(alarm.id)" color="light">Delete</ion-button>

delete(alarm){
  this.db.doc('alarms/'+alarm).delete();
  console.log(alarm);

}

...