javascript - 获取 Emberjs 中点击的元素的值

标签 javascript jquery ember.js

我有一系列标签,我想在用户单击它们时检索文本。我认为 jquery 在 Emberjs 中可能是可行的:

$(this).attr('text');

但是,这不适用于 Ember。我的组件 View 是这样的:

<ul class="list-inline">
  {{#each model as |model|}}
    <li {{action "sendToInput"}} class="label label-default">{{model.name}}</li>
  {{/each}}
</ul>

我想通过“sendToInput”操作检索 model.name 值。

在我的组件 js 文件中我尝试过:

actions: {
  sendToInput() {
    $(this.target).attr('text');
  }
}

我也尝试过:

this.innerHTML;
$(this).text();
this.get('text');
$(this).val();

我还打开了控制台并仔细研究了它,似乎找不到它们存储单击的元素的位置。

文档没有提到这一点,而且我在 Github 上找不到 ember-cli 的问题。

谢谢。

最佳答案

常见的方法是将模型名称作为操作参数传递,如下所示:

<ul class="list-inline">
  {{#each model as |model|}}
    <li {{action "sendToInput" model.name}} class="label label-default">{{model.name}}</li>
  {{/each}}
</ul>

然后在action中处理:

actions: {
  sendToInput(name) {
    // do something with name
  }
}

但是如果您仍然需要访问确切元素的 html,还有另一种解决方法:

export default Ember.Component.extend({

    didInsertElement () {
        this.$().on('click', '.label', function (event) {
            $(this).text();
        })
    }

});

关于javascript - 获取 Emberjs 中点击的元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792614/

相关文章:

javascript - 如何修复 jQuery 中不稳定的动画

javascript - AngularJs 停止特定 Controller 的 $interval

javascript - 将 image.src 设置为自身会导致 onLoad 触发吗?

javascript - Node.JS 和浏览器之间的 RequireJS 对 jQuery 的简单可选依赖

jquery - 棘手的突出显示旋转 JQuery - 计时器和选择器

javascript - 为什么提取请求会导致服务器返回 403 而 XMLHttpRequest 不会?

javascript - 我想使用 JQuery 或 CSS 更改表格行的颜色

javascript - 带有 node.js 的前端 javascript 框架

javascript - emberjs 嵌套 {{#each}} 不起作用

ember.js - 处理 Ember.js 中的验证错误