将html元素的值作为参数传递给ember

时间:2019-02-08 21:16:12

标签: javascript html templates ember.js

很抱歉,这是一个愚蠢的问题,但我似乎无法弄清楚。我需要将row元素的值传递给它调用的函数,但似乎无法访问该值。我无法为行提供唯一的ID,因为我向表添加行的过程涉及复制行并更改其值。这是我的代码:

    <tr value = "0" onmouseover={{action 'displayBar' this.value}}>

          //     ^ This is the value I am trying to pass      ^ This is how I am trying to pass it

我尝试过this.value,value =“ target.value”,value等,但是所有结果都不确定。我无法确定参数的唯一方法是,如果我只是发送“ 0”作为参数而不是this.value。

2 个答案:

答案 0 :(得分:3)

target.value仅适用于input元素。 value不是input以外的元素的HTML属性,因此目标没有与该属性相等的value属性。

您可以改为像这样传递整个目标:

<tr data-value=0 onmouseover={{action 'displayBar' value="target"}}>

,然后在您的js中:

actions: {
  displayBar(target) {
    const value = target.getAttribute('data-value');
  }
}

这里是工作中的灰烬小提琴:https://ember-twiddle.com/c177c2be6f7d740968e2f02f79748d83?openFiles=controllers.application.js%2C (只需将鼠标悬停在“很多东西”上)

答案 1 :(得分:0)

完成这项工作:

<tr onmouseover={{action 'displayBar' 0}}>