Javascript 获取在Emberjs中单击的元素的值
我有一系列的标签,当用户点击它们时,我想从中检索文本。我认为jquery在Emberjs中是可行的:Javascript 获取在Emberjs中单击的元素的值,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,我有一系列的标签,当用户点击它们时,我想从中检索文本。我认为jquery在Emberjs中是可行的: $(this).attr('text'); 但是,这不适用于余烬。我的组件视图如下所示: <ul class="list-inline"> {{#each model as |model|}} <li {{action "sendToInput"}} class="label label-default">{{model.name}}</li>
$(this).attr('text');
但是,这不适用于余烬。我的组件视图如下所示:
<ul class="list-inline">
{{#each model as |model|}}
<li {{action "sendToInput"}} class="label label-default">{{model.name}}</li>
{{/each}}
</ul>
我也尝试过:
this.innerHTML;
$(this).text();
this.get('text');
$(this).val();
我还打开了控制台,仔细研究了一下,似乎找不到他们在哪里存储单击的元素
文档中没有提到这一点,我在Github for ember cli上也找不到任何问题
谢谢 常见的方法是将模型名称作为操作参数传递,如下所示:
<ul class="list-inline">
{{#each model as |model|}}
<li {{action "sendToInput" model.name}} class="label label-default">{{model.name}}</li>
{{/each}}
</ul>
但是,如果您仍然需要访问确切元素的html,还有另一种解决方法:
export default Ember.Component.extend({
didInsertElement () {
this.$().on('click', '.label', function (event) {
$(this).text();
})
}
});
您需要将值与操作一起发送。看,就是这样。这很有道理。仍然掌握着余烬的窍门
actions: {
sendToInput(name) {
// do something with name
}
}
export default Ember.Component.extend({
didInsertElement () {
this.$().on('click', '.label', function (event) {
$(this).text();
})
}
});