我正在寻找类似于jQuery
的this
。我将在下面列出我的代码:
<script type="text/x-handlebars" data-template-name="uiMainContainerTaskList">
<div class="uiMainContainerTaskListContent">
{{#view App.TasksView}}
{{#each App.tasksController.tasks}}
<div class="uiMainContainerWideItem" {{action "taskClick" target="TasksView" on="click"}}>
<div class="uiMainContainerWideItemCheckbox">{{view Em.Checkbox checkedBinding="isDone"}}</div>
<div class="uiMainContainerWideItemText uiMainContainerWideItemTaskName">{{taskName}}</div>
<div class="uiMainContainerWideItemText uiMainContainerWideItemTaskDescription">{{taskDescription}}</div>
<div class="uiMainContainerWideItemText uiMainContainerWideItemTaskPriority">{{priority}}</div>
<div class="uiMainContainerWideItemText uiMainContainerWideItemTaskDueDate">{{dueDate}}</div>
</div>
{{/each}}
{{/view}}
</div>
</script>
我将taskClick
操作绑定到div.uiMainContainerWideItem
。在我的View
中,我有:
App.TasksView = Em.View.extend({
templateName: 'uiMainContainerTaskList',
taskClick: function(e) {
console.log($(this));
}
});
在jQuery
中,$(this)
将是当前元素(无子元素)。有没有办法在Ember中获取当前元素?
4条答案
按热度按时间v64noz0r1#
我相信你在找
this.$()
。jv4diomz2#
您可以调用
this.get('element')
来获取实际元素。请参见:Ember View文档
ifmq2ha23#
我知道这是一个老问题,但由于视图已被弃用(如果组件不需要它),您可以将操作传递给domonclick事件,并在操作的最后一个参数中获取事件js对象。
请检查https://stackoverflow.com/a/37066157/2726189
希望有帮助
yqyhoc1h4#
现在是一个非常老的问题,但我们正在删除jQuery,并使用下面的普通JS来获取DOM元素
以及组件 Package div上的
{{did-insert this.functionThatCallsTheAboveCode}}
。