小编Chr*_*ing的帖子

无法读取未定义的属性 - cdkDropListData 拖放 Angular Material

我正在使用新的 Angular 7 Material CDK 拖放功能将项目从一个列表移动到另一个列表,并且在移动这些项目时视觉上一切都在晃动,但是当通过列表更改项目时,我收到一条错误消息,说无法获取属性(列表数组)来自未定义,即使我使用的是“item?.array”的东西

在构造函数中:

this.userService.getUserById('some-user-id').subscribe(user => {
  this.user1 = user;
  console.log(user1.route.routePoints); // I see the array in log
});

this.userService.getUserById('some-other-user-id').subscribe(user => {
  this.user2 = user;
  console.log(user2.route.routePoints); // I see the array in log
});
Run Code Online (Sandbox Code Playgroud)

在这里,将项目从列表拖到另一个列表时,出现错误“无法读取未定义的属性‘routePoints’”

<div cdkDropList #routeA="cdkDropList" cdkDropListOrientation="horizontal" 
[cdkDropListData]="user1?.route?.routePoints"
class="list" (cdkDropListDropped)="drop($event, false, user1)" 
[cdkDropListConnectedTo]="[queue, routeB]">
Run Code Online (Sandbox Code Playgroud)

这是拖动代码:

drop(event: CdkDragDrop<RoutePoint[]>, fromQueue: boolean = false, user: User) {
  if (event.previousContainer === event.container) {
    moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
  } else {
    transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
  }
  this.userService.updateUser(user);
}
Run Code Online (Sandbox Code Playgroud)

drag-and-drop angular-material angular

5
推荐指数
1
解决办法
5766
查看次数

标签 统计

angular ×1

angular-material ×1

drag-and-drop ×1