Emberjs:获取当前元素

ha5z0ras  于 2022-10-20  发布在  其他
关注(0)|答案(4)|浏览(138)

我正在寻找类似于jQuerythis。我将在下面列出我的代码:

<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中获取当前元素?

v64noz0r

v64noz0r1#

我相信你在找this.$()

jv4diomz

jv4diomz2#

您可以调用this.get('element')来获取实际元素。
请参见:Ember View文档

ifmq2ha2

ifmq2ha23#

我知道这是一个老问题,但由于视图已被弃用(如果组件不需要它),您可以将操作传递给domonclick事件,并在操作的最后一个参数中获取事件js对象。
请检查https://stackoverflow.com/a/37066157/2726189
希望有帮助

yqyhoc1h

yqyhoc1h4#

现在是一个非常老的问题,但我们正在删除jQuery,并使用下面的普通JS来获取DOM元素

document.querySelector(`#${this.element.id}`);

以及组件 Package div上的{{did-insert this.functionThatCallsTheAboveCode}}

相关问题