我想在 app.html.ex 模板中包含一个导航栏。像这样的东西:
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">My app</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="/">Home</a></li>
<li><a href="help">Help</a></li>
<li><a href="contact">Contact Us</a></li>
</ul>
</div>
</div>
</nav>
有没有办法渲染ul
,以便它可以根据当前 Controller 附加class="active"
?
最佳答案
我还没有看到渲染导航的方法。 或者,您可以编写一些辅助方法。
为了设置class="active"
,我向layout_view.ex
添加了一些方法。
def is_example_path(conn) do
controller_module(conn) == MyApp.ExampleController
end
因此您可以将类似的内容添加到您的模板中。
<ul>
<li class="something <%= if is_example_path(@conn), do: " active" %>">Example</li>
</ul>
希望这有帮助。
关于phoenix-framework - 使用 Phoenix 框架呈现导航的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35973341/