【发布时间】:2014-11-12 17:36:49
【问题描述】:
我有一个附加到列表项的操作,然后循环多次,我希望该操作识别它附加到哪个列表项。
这是动作的定义。请注意,我误用了 this.$(),因为我现在认识到它只适用于组件
查看:
actions: {
turnThisGreen:function() {
this.$().css('background-color', 'green');
}
}
这是我在循环中放置动作的地方。假设有 10 个列表项。
{{#each listItems}}
<div {{action 'turnThisGreen' target="view" this=this bubbles=false}} class="inspectionTypeHeader">
{{inspectionType.typeName}}
</div>
{{/each}}
所以重申一下,当我单击操作“turnThisGreen”时,我希望该元素(即我在列出的 10 个元素中单击的第一个元素)变为绿色。 this.$() 不是为我做的。
我知道 this.$() 可以与组件一起使用,但这似乎是一个巨大的变通方法。
有人可以向我解释一下并提供解决方案吗?
【问题讨论】:
-
对迭代项使用objectController。
-
就像将动作的定义加载到对象控制器而不是视图中,并使用 this.$() 来调用它?
标签: javascript html ember.js action