ฉันต้องการลบรายการออกจากอาร์เรย์ที่เก็บไว้ในเชิงมุม 2 ด้วย Type Script ฉันใช้บริการที่เรียกว่าData Serviceรหัส DataService:
export class DataService {
    private data: string[] = [];
    addData(msg: string) {
        this.data.push(msg);
    }
    getData() {
        return this.data;
    }
    deleteMsg(msg: string) {
        delete [this.data.indexOf(msg)];
    }
}
และคลาสส่วนประกอบของฉัน:
import {Component} from '@angular/core'
import {LogService} from './log.service'
import {DataService} from './data.service'
@Component({
    selector: 'tests',
    template:
            `
        <div class="container">
            <h2>Testing Component</h2>
            <div class="row">
                <input type="text" placeholder="log meassage" #logo>
                <button class="btn btn-md btn-primary" (click)="logM(logo.value)">log</button>
                <button class="btn btn-md btn-success" (click)="store(logo.value)">store</button>
                <button class="btn btn-md btn-danger" (click)="send()">send</button>
                <button class="btn btn-md " (click)="show()">Show Storage</button>
                <button (click)="logarray()">log array</button>
            </div>
            <div class="col-xs-12">
                <ul class="list-group">
                    <li *ngFor="let item of items" class="list-group-item" #ival>
                        {{item}}
                        <button class="pull-right btn btn-sm btn-warning" (click)="deleteItem(ival.value)">Delete
                        </button>
                    </li>
                </ul>
            </div>
            <h3>{{value}}</h3>
            <br>
        </div>
    `
})
export class TestsComponent {
    items: string[] = [];
    constructor(
        private logService: LogService,
        private dataService: DataService) {
    }
    logM(message: string) {
        this.logService.WriteToLog(message);
    }
    store(message: string) {
        this.dataService.addData(message);
    }
    send(message: string) {
    }
    show() {
        this.items = this.dataService.getData();
    }
    deleteItem(message: string) {
        this.dataService.deleteMsg(message);
    }
    logarray() {
        this.logService.WriteToLog(this.items.toString());
    }
}
ตอนนี้ทุกอย่างทำงานได้ดียกเว้นเมื่อฉันพยายามลบรายการ บันทึกแสดงให้ฉันเห็นว่ารายการนั้นยังคงอยู่ในอาร์เรย์ดังนั้นจึงยังคงแสดงอยู่บนหน้า ฉันจะลบรายการหลังจากเลือกด้วยปุ่มลบได้อย่างไร?
indexOf()สำหรับ-1สิ่งนี้จะลบรายการสุดท้ายออกจากอาร์เรย์เมื่อmsgไม่พบ!