2017-08-03 40 views
0

我想突出component上的click事件(需要添加一个类名为addBorder)该怎么做?当用户点击其他组件时,我需要从其他组件中删除addBorder。因此只有click组件会一次突出显示。Ember-Component如何在“click”组件上添加边框?

我可以很容易地使用jQuery,但我在寻找ember的方式!

这里是我的演示:Live Demo Link

+0

https://ember-twiddle.com/4eaf4c8d3ab83e027e4e24db280c774d?openFiles=templates.components.my-parent.hbs%2Ctemplates.components.my-child.hbs – kumkanillam

+0

如果用户点击返回相同的元素如何删除类(切换类) – 3gwebtrain

+0

在'changeSeletectedIndex'函数中,检查现有的selectedIndex和单击索引是否相同,然后使其selectedIndex为空...没有什么特别的余烬,毕竟它的javascript – kumkanillam

回答

1

您可以像selectedItemTitle将在click改为item.title添加属性。然后你可以将这个selectedItemTitle传递给组件。组件可以检查它的item.title === selectedItemTitle。如果是,则像isSelected这样的属性可以设置为true。然后你使用classNameBindingsisSelected绑定到一个类。

父组件模板:

{{#each model as |item|}} 
    {{my-child item=item.title info=item.info tagName="li" selectedItemTitle=selectedItemTitle click=(action 'selectItem' item.title) 
    }} 
{{/each}} 

working demo

+0

现场演示不起作用,请你看看它? (点击列表上什么也不做) – 3gwebtrain

+0

当然。给我一秒钟。 –

+0

请立即尝试。 :) –