Tôi muốn xóa một mục khỏi một mảng được lưu trữ ở góc 2, với Kiểu Script. Tôi đang sử dụng một dịch vụ gọi Dịch vụ dữ liệu, Bộ luật DataService:xóa mục khỏi mảng được lưu trữ trong góc 2
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)];
}
}
và lớp thành phần của tôi:
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());
}
}
Bây giờ, tất cả mọi thứ đang làm việc tốt trừ khi tôi cố gắng xóa một mục. Nhật ký hiển thị cho tôi rằng mục vẫn còn trong mảng và do đó vẫn được hiển thị trên trang. Làm thế nào tôi có thể loại bỏ các mục sau khi chọn nó với nút xóa ??
** Lưu ý: ** Nếu bạn không kiểm tra sự trở lại của ' indexOf() 'cho' -1', điều này sẽ loại bỏ mục cuối cùng khỏi mảng khi 'msg' không được tìm thấy! –