Akshay malvankar Ответов: 0

Функция на непроверенный не работает в угловой 7


Я хочу загрузить csv-файл при проверке или снятии флажков, но когда я нажимаю на триггер функции checkbox, но когда я снимаю флажок, функция checkbox не срабатывает

ниже приведен мой файл .ts

import { Component } from '@angular/core';
import { DownloadCSVService } from '../app/download-csv.service';

@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent {
    title = 'downloadCSV';
    constructor(private downloadCSV: DownloadCSVService) { }
    itemChecked: boolean = false;
    allCheckedBox: boolean = false;
    selectedData: any = [];
    finalArrayData:any =[];
    jsonData = [
        {
            id: 1,
            name: "Anil Singh",
            age: 33,
            average: 98,
            approved: true,
            description: "I am active blogger and Author."
        },
        {
            id: 2,
            name: 'Reena Singh',
            age: 28,
            average: 99,
            approved: true,
            description: "I am active HR."
        },
        {
            id: 3,
            name: 'Aradhya',
            age: 4,
            average: 99,
            approved: true,
            description: "I am engle."
        },
    ];

    
    download() {
        console.log("json data" + this.jsonData);
        if (this.itemChecked = true && this.selectedData.length < 0) {
            this.downloadCSV.downloadFile(this.jsonData, 'jsontocsv');
        }
        if (this.selectedData.length > 0) {
            
            for (var i = 0; i < this.selectedData.length; i++) {
                var arrayFind = this.jsonData.find(employee => employee.id === this.selectedData[i]);
                this.finalArrayData.push(arrayFind); 
                
            }
            console.log(this.finalArrayData);
            this.downloadCSV.downloadFile(this.finalArrayData, 'jsontocsv');
        }


    }

    setCheckBoxTrue($event) {
        if ($event.target.checked == true) {
            this.itemChecked = true;
        } else {
            this.itemChecked = false;
        }
    }

    selectedValue($event, data: any) {  // this is function i am calling on checked or unchecked
        if($event.target.checked !== false){
            this.selectedData.push(data.id);
            console.log(this.selectedData);
        }
 }
}


// ниже приведен мой html-код

<router-outlet></router-outlet>
<button type="button"  color="primary" (click)='download()' style="float: right"> Download CSV </button>
<br>
<table border="2" cellpadding="2">
    <thead>
        <th><input type="checkbox" (click)="setCheckBoxTrue($event)"  [checked]="allCheckedBox"></th>
        <th>ID</th>
        <th>Name</th>
        <th>Age</th>
        <th>Average</th>
        <th>Status</th>
        <th>Description</th>
    </thead>
    <tbody>
        <tr *ngFor="let data of jsonData">
            <td><input type="checkbox"   (click)="selectedValue($event,data)" [checked]="itemChecked"></td>
            <td>{{ data.id }}</td>
            <td>{{ data.name }}</td>
            <td>{{ data.age }}</td>
            <td>{{ data.average }}</td>
            <td>{{ data.approved }}</td>
            <td>{{ data.description }}</td>
        </tr>
    </tbody>
</table>


Что я уже пробовал:

я пробовал несколько вещей, но все равно это не работает

0 Ответов