Ruby 如何在Volt中执行jQuery toggleClass?

Ruby 如何在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

我正在玩,目前正在尝试为我的Volt应用程序中的边栏做一个简单的切换类(运气不好)。下面是一个代码示例

app/main/views/main.html

<: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
a
toggled
类应添加到
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>