SortableJS Angular 2.0+ 绑定:在不同组件的两个列表之间拖放
SortableJS Angular 2.0+ binding: Drag & drop between two lists in different components
我正在使用 Angular bindings for SortableJS 来获得一系列拖放列表。当每个列表都包含在其自己的组件中时,拖放是否可以工作?
在视觉层面上,我能够对列表中的项目重新排序。然而,在列表之间转移的项目直到第二个项目被转移才会出现(注意屏幕截图上部的 "list 2" 如何缺少列表项目“2”,这是从 [=28 转移的最后一个项目=] 到 "list 2")。
另一个问题是 none 通过拖放所做的更改反映在列表的内容中——请注意 "See the result" 部分中的列表与它们在上部。
我目前有如下代码:
父组件:
import { Component, OnInit } from '@angular/core';
import { ItemsService } from '../items.service';
@Component({
selector: 'app-multi-list',
template: `
<h2>Drag / drop the item</h2>
<h3>list 1</h3>
<app-list [(items)]="itemsService.items1"></app-list>
<h3>list 2</h3>
<app-list [(items)]="itemsService.items2"></app-list>
<hr>
<h2>See the result</h2>
<div>
<h3>list 1</h3>
<div *ngFor="let item of itemsService.items1">{{ item }}</div>
<h3>list 2</h3>
<div *ngFor="let item of itemsService.items2">{{ item }}</div>
</div>
`,
styleUrls: ['./multi-list.component.css']
})
export class MultiListComponent implements OnInit {
constructor(public itemsService: ItemsService) { }
ngOnInit() { }
}
包含可排序列表的子组件:
import { Component, Input, OnInit } from '@angular/core';
import { SortablejsOptions } from 'angular-sortablejs';
@Component({
selector: 'app-list',
template: `
<div [sortablejs]="items" [sortablejsOptions]="{ group: 'test' }">
<div *ngFor="let item of items">{{ item }}</div>
</div>
`,
styleUrls: ['./list.component.css']
})
export class ListComponent implements OnInit {
@Input() items: any[];
ngOnInit() { }
}
支持在包含在不同组件中的列表之间传输内容是 added to version 2.4.0。
我正在使用 Angular bindings for SortableJS 来获得一系列拖放列表。当每个列表都包含在其自己的组件中时,拖放是否可以工作?
在视觉层面上,我能够对列表中的项目重新排序。然而,在列表之间转移的项目直到第二个项目被转移才会出现(注意屏幕截图上部的 "list 2" 如何缺少列表项目“2”,这是从 [=28 转移的最后一个项目=] 到 "list 2")。
另一个问题是 none 通过拖放所做的更改反映在列表的内容中——请注意 "See the result" 部分中的列表与它们在上部。
我目前有如下代码:
父组件:
import { Component, OnInit } from '@angular/core';
import { ItemsService } from '../items.service';
@Component({
selector: 'app-multi-list',
template: `
<h2>Drag / drop the item</h2>
<h3>list 1</h3>
<app-list [(items)]="itemsService.items1"></app-list>
<h3>list 2</h3>
<app-list [(items)]="itemsService.items2"></app-list>
<hr>
<h2>See the result</h2>
<div>
<h3>list 1</h3>
<div *ngFor="let item of itemsService.items1">{{ item }}</div>
<h3>list 2</h3>
<div *ngFor="let item of itemsService.items2">{{ item }}</div>
</div>
`,
styleUrls: ['./multi-list.component.css']
})
export class MultiListComponent implements OnInit {
constructor(public itemsService: ItemsService) { }
ngOnInit() { }
}
包含可排序列表的子组件:
import { Component, Input, OnInit } from '@angular/core';
import { SortablejsOptions } from 'angular-sortablejs';
@Component({
selector: 'app-list',
template: `
<div [sortablejs]="items" [sortablejsOptions]="{ group: 'test' }">
<div *ngFor="let item of items">{{ item }}</div>
</div>
`,
styleUrls: ['./list.component.css']
})
export class ListComponent implements OnInit {
@Input() items: any[];
ngOnInit() { }
}
支持在包含在不同组件中的列表之间传输内容是 added to version 2.4.0。