Ruby 如何在Volt中执行jQuery toggleClass?
我正在玩,目前正在尝试为我的Volt应用程序中的边栏做一个简单的切换类(运气不好)。下面是一个代码示例 app/main/views/main.htmlRuby 如何在Volt中执行jQuery toggleClass?,ruby,opalrb,voltrb,Ruby,Opalrb,Voltrb,我正在玩,目前正在尝试为我的Volt应用程序中的边栏做一个简单的切换类(运气不好)。下面是一个代码示例 app/main/views/main.html <:Title> {{ view main_path, "title", {controller_group: 'main'} }} <:Body> <div id="wrapper"> <div id="sidebar-wrapper"> <ul class
<:Title>
{{ view main_path, "title", {controller_group: 'main'} }}
<:Body>
<div id="wrapper">
<div id="sidebar-wrapper">
<ul class="sidebar-nav">
<li><a href="#">blah</a></li>
<li><a href="#">blah</a></li>
<li><a href="#">blah</a></li>
...
</ul>
</div>
<div id="page-content-wrapper">
<div class="container-fluid">
<div class="btn btn-default sidebar-toggler">Toggle Sidebar</div>
<:volt:notices />
{{ view main_path, 'body', {controller_group: 'main'} }}
</div>
</div>
</div>
单击div.sidebar-toggler
atoggled
类应添加到div#wrapper
。。。事实并非如此,也许有另一种方法可以用Volt实现这一点
上面的代码不起作用。
执行此操作的好方法是什么?在Volt中,您通常会将控制器上的切换状态设置为“”,然后使用绑定更新类状态。因为控制器是绑定的上下文,所以我们可以在if绑定中检查被动访问器的状态 在控制器中:
module Main
class MainController < Volt::ModelController
reactive_accessor :toggled
def toggle_sidebar
self.toggled = !toggled
end
....
希望这能有所帮助,如果您需要,我可以进一步澄清。太好了!谢谢@ryan的回答:-)
module Main
class MainController < Volt::ModelController
reactive_accessor :toggled
def toggle_sidebar
self.toggled = !toggled
end
....
...
<div class="btn btn-default sidebar-toggler {{ if toggled }}toggled{{ end }}" e-click="toggle_sidebar">Toggle Sidebar</div>
...
def toggled_class
toggled ? 'toggled' : ''
end
....
<div class="btn btn-default sidebar-toggler {{ toggled_class }}" e-click="toggle_sidebar">Toggle Sidebar</div>