我正在尝试将DOM元素传递给Aurelia函数,但它不起作用。 只是注意到这个元素不在'repeat.for'语句中。
我有类似的东西,显然不正确:
<span click.trigger="passDom(d)">Pass Dom Element</span>
export class Test {
passDom(d) {
console.log(d);
}
}
我尝试使用$ self,但不能正常工作。
答案 0 :(得分:6)
像这样使用$event.target
:
<span click.trigger="passDom($event.target)">Pass Dom Element</span>
您可以在Aurelia Hub - DOM Events中了解有关DOM事件的更多信息。
使用特殊的$ event属性访问绑定表达式中的DOM事件。
或者,您可以创建对DOM事件的引用并从视图模型中使用它:
<span click.trigger="passDom()" ref="myElement">Pass Dom Element</span>
// in view model
export class Test {
passDom() {
console.log(this.myElement);
}
}
也可在Aurelia Hub - Referencing Elements中找到。
使用
ref
绑定命令创建对DOM元素的引用。ref
命令的最基本语法是ref="expression"
。当视图是数据绑定时,将为指定的表达式分配DOM元素。
答案 1 :(得分:2)
如果this.myElement
在VM中有太大的魔力,你可以做的另一件事就是直接将引用传递给函数:
<span click.trigger="passDom(myElement)" ref="myElement">Pass Dom Element</span>
// in view model
export class Test {
passDom(passedElement) {
console.log(passedElement);
}
}