有一项服务使用以下set/get
方法管理列表:
@Injectable()
export class ListService {
private items: any[] = [];
getItems() {
return this.items;
}
setItems<T>(items: T[]): T[] {
this.items = [...items];
return this.items;
}
setSelected(value: any): void {
value.selected = !value.selected;
}
setSelectedState(value: any, state: boolean): void {
value.selected = state;
}
drop(event: CdkDragDrop<string[]>) {
moveItemInArray(this.items, event.previousIndex, event.currentIndex);
}
emitChnages(): void {
this.onChanged.next(this.items);
}
}
我在组件内部使用此服务,这是packet
我分配给的输入变量this.listService.setItems()
:
export class SignComponent implements OnInit {
@Input() packet: any;
public copysogllist: any[] = [];
ngOnInit() {
this.copysogllist = this.listService.setItems(this.packet.sogllist);
}
public drop(event: CdkDragDrop<string[]>): void {
this.listService.drop(event);
}
}
为什么当我调用this.listService.drop(event);
它时不更改数组this.copysogllist
?
you can just make
drop(event: CdkDragDrop<string[]>) {
moveItemInArray(this.items, event.previousIndex, event.currentIndex);
return this.items
}
and in your component
public drop(event: CdkDragDrop<string[]>): void {
this.copysogllist = this.listService.drop(event);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句