如何访问子元素的附加行为?
How to access sub element's attached behavior?
我正在尝试为 https://github.com/RubaXa/Sortable 编写一个 aurelia 附加行为,允许使用 html 5 拖放对列表中的项目重新排序,类似于他们为 AngularJS.到目前为止,html 元素的拖放与以下模板代码完美配合
<template>
<require from="./sortable"></require>
<section>
<h2>${title}</h2>
<ul sortable>
<li repeat.for="item of items">${item.title}</li>
</ul>
</section>
</template>
和附加行为
import {Behavior} from 'aurelia-framework';
import Sortable from 'rubaxa-sortable';
export class SortableAttachedBehavior {
static metadata() {
return Behavior
.attachedBehavior('sortable');
}
static inject() {
return [Element];
}
constructor(element) {
this.element = element;
}
bind(viewModel) {
this.sortable = Sortable.create(this.element);
}
unbind() {
this.sortable.destroy();
this.sortable = null;
}
}
作为下一步,除了重新排序 html 元素外,我还想重新排序模型中的数据项。我可以从我拥有的可排序实例中获取有关 dnd 的所需事件。我现在的问题是获取对项目的引用。
因为我只想在子元素上出现 repeat.for 行为时执行此操作,我认为最好的方法是访问其 Repeat 实例并更新其项目的内容 属性.但是如何检查此附加行为的存在以及如何获取 Repeat 实例?
或者是否有更好的方法来访问这些项目(除了再次将它们指定为我的可排序行为的 属性)?
干杯,蒂尔曼
已经有插件了
例如 https://github.com/buttonwoodcx/bcx-aurelia-reorderable-repeat
您可以通过查看@源代码来了解它是如何实现的(-:
我正在尝试为 https://github.com/RubaXa/Sortable 编写一个 aurelia 附加行为,允许使用 html 5 拖放对列表中的项目重新排序,类似于他们为 AngularJS.到目前为止,html 元素的拖放与以下模板代码完美配合
<template>
<require from="./sortable"></require>
<section>
<h2>${title}</h2>
<ul sortable>
<li repeat.for="item of items">${item.title}</li>
</ul>
</section>
</template>
和附加行为
import {Behavior} from 'aurelia-framework';
import Sortable from 'rubaxa-sortable';
export class SortableAttachedBehavior {
static metadata() {
return Behavior
.attachedBehavior('sortable');
}
static inject() {
return [Element];
}
constructor(element) {
this.element = element;
}
bind(viewModel) {
this.sortable = Sortable.create(this.element);
}
unbind() {
this.sortable.destroy();
this.sortable = null;
}
}
作为下一步,除了重新排序 html 元素外,我还想重新排序模型中的数据项。我可以从我拥有的可排序实例中获取有关 dnd 的所需事件。我现在的问题是获取对项目的引用。
因为我只想在子元素上出现 repeat.for 行为时执行此操作,我认为最好的方法是访问其 Repeat 实例并更新其项目的内容 属性.但是如何检查此附加行为的存在以及如何获取 Repeat 实例?
或者是否有更好的方法来访问这些项目(除了再次将它们指定为我的可排序行为的 属性)?
干杯,蒂尔曼
已经有插件了 例如 https://github.com/buttonwoodcx/bcx-aurelia-reorderable-repeat
您可以通过查看@源代码来了解它是如何实现的(-: