首页 > 解决方案 > 在ember中将html元素的值作为参数传递

问题描述

如果这是一个愚蠢的问题,我很抱歉,但我似乎无法弄清楚。我需要将行元素的值传递给它调用的函数,但我似乎无法访问该值。我不能给行一个唯一的 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。

标签: javascripthtmltemplatesember.js

解决方案


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

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

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

然后在你的js中:

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

这是一个有效的 Ember Twiddle:https ://ember-twiddle.com/c177c2be6f7d740968e2f02f79748d83?openFiles=controllers.application.js%2C (只需将鼠标悬停在“很多东西”上)


推荐阅读