使用 ngFor 绑定对象时,组件在 Angular2 for Dart 中不可拖动
Components are not draggable in Angular2 for Dart when bind objects using ngFor
我创建了一个组件,它是一个可拖动元素。
@Component(
selector: 'draggable-component',
styles: const ['.element-to-drag {background-color: yellow; border: 1px solid blue; height: 50px; width: 50px;}'],
template: '''
<div class="element-to-drag"
draggable="true"
(dragstart)="onDragStart($event)"
(dragend)="onDragEnd($event)">
</div>''')
class DraggableComponent {
void onDragStart(MouseEvent e) {
print('onDragStart');
}
void onDragEnd(MouseEvent e) {
print('onDragEnd');
}
}
当我将它用作单个元素时,它会触发拖动开始事件并且可以拖动到拖放区。
当我使用基元列表(数字)的 ngFor 创建它时,所有元素都会触发拖动开始事件并且可以 拖动到拖放区。
但是当我使用 ngFor of objects 创建它时,所有元素都会触发拖动启动事件,但 不能 拖到放置区(它们不会被拖动).
这是一个例子:
@Component(
selector: 'my-app',
directives: const [DraggableComponent, NgFor],
styles: const ['.container {border: 1px solid red;; height: 100px; width: 100px;}'],
template: '''
<div>
<div class="container"></div>
<h3>Single</h3>
<draggable-component></draggable-component>
<h3>Primitives</h3>
<draggable-component *ngFor="#example of examplesPrimitives"></draggable-component>
<h3>Objects</h3>
<draggable-component *ngFor="#example of examples"></draggable-component>
</div>
''')
class AppComponent {
get examples => [
{"name": 1},
{"name": 2},
{"name": 3},
{"name": 4} ];
get examplesPrimitives => [ 1,2,3,4,5];
}
如何使对象的绑定可拖动?
这是 Angular2 机智 Dart 错误。 Angular2 使用 TypeScript 在相同情况下工作正常。
在 Angular 存储库中创建了一个问题:
https://github.com/angular/angular/issues/6975
我创建了一个组件,它是一个可拖动元素。
@Component(
selector: 'draggable-component',
styles: const ['.element-to-drag {background-color: yellow; border: 1px solid blue; height: 50px; width: 50px;}'],
template: '''
<div class="element-to-drag"
draggable="true"
(dragstart)="onDragStart($event)"
(dragend)="onDragEnd($event)">
</div>''')
class DraggableComponent {
void onDragStart(MouseEvent e) {
print('onDragStart');
}
void onDragEnd(MouseEvent e) {
print('onDragEnd');
}
}
当我将它用作单个元素时,它会触发拖动开始事件并且可以拖动到拖放区。
当我使用基元列表(数字)的 ngFor 创建它时,所有元素都会触发拖动开始事件并且可以 拖动到拖放区。
但是当我使用 ngFor of objects 创建它时,所有元素都会触发拖动启动事件,但 不能 拖到放置区(它们不会被拖动).
这是一个例子:
@Component(
selector: 'my-app',
directives: const [DraggableComponent, NgFor],
styles: const ['.container {border: 1px solid red;; height: 100px; width: 100px;}'],
template: '''
<div>
<div class="container"></div>
<h3>Single</h3>
<draggable-component></draggable-component>
<h3>Primitives</h3>
<draggable-component *ngFor="#example of examplesPrimitives"></draggable-component>
<h3>Objects</h3>
<draggable-component *ngFor="#example of examples"></draggable-component>
</div>
''')
class AppComponent {
get examples => [
{"name": 1},
{"name": 2},
{"name": 3},
{"name": 4} ];
get examplesPrimitives => [ 1,2,3,4,5];
}
如何使对象的绑定可拖动?
这是 Angular2 机智 Dart 错误。 Angular2 使用 TypeScript 在相同情况下工作正常。
在 Angular 存储库中创建了一个问题: https://github.com/angular/angular/issues/6975