如何将DOM元素传递给Aurelia函数?

时间:2016-08-15 07:47:46

标签: aurelia aurelia-binding

我正在尝试将DOM元素传递给Aurelia函数,但它不起作用。 只是注意到这个元素不在'repeat.for'语句中。

我有类似的东西,显然不正确:

<span click.trigger="passDom(d)">Pass Dom Element</span>


export class Test {

  passDom(d) {
    console.log(d);
  }
}

我尝试使用$ self,但不能正常工作。

2 个答案:

答案 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);
  }
}