我正在玩伏特,目前正在我的Volt应用程序中为侧边栏做一个简单的toggleClass (没有运气)。这是一个代码示例。
app/main/view/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>app/main/assets/js/侧栏.js
$(document).ready(function() {
$(".sidebar-toggler").click(function(e) {
e.preventDefault();
$("#wrapper").toggleClass("toggled");
});
});当单击div.sidebar-toggler时,toggled类应该添加到div#wrapper中.没有,也许还有另一种方法可以让Volt做到这一点。
以上代码不起作用。什么是好伏特方式来做这个?
发布于 2015-06-14 19:46:42
在volt中,您通常会在控制器上将切换状态设置为"无功存取器“,然后使用绑定更新类状态。由于控制器是绑定的上下文,所以我们可以在if绑定中检查reactive_accessor的状态。
在主计长中:
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>
...当我们调用self.toggled =方法时,它会更改状态,并使用该数据响应更新任何绑定。电子单击调用控制器上的toggle_sidebar方法.做这样简单事情的常见方法是将if直接放到视图中。我们还可以将其放入返回字符串并绑定到该字符串的方法中。
def toggled_class
toggled ? 'toggled' : ''
end
....
<div class="btn btn-default sidebar-toggler {{ toggled_class }}" e-click="toggle_sidebar">Toggle Sidebar</div>希望这有帮助,如果你需要的话,我可以澄清更多。
https://stackoverflow.com/questions/30828685
复制相似问题