我有一个使用 ajax 制作新标签的模式。它使用 Tags 参数执行 POST 方法,而无需重新加载 View 。所以我想根据选择的“price_type”参数呈现一个或另一个价格 div。我正在使用 Handlebars,所以我想这不是 ruby 的条件责任(因为 AJAX),而是 Handlebars 条件责任。
问题是我尝试了很多方法来使 Handlebars 有条件,但都没有成功。
我想用 Handlebars 条件实现与此等效的效果,其中 @tag.price_type
在 JS 中存储为 {{price_type}}
。因为我使用的是 AJAX,所以如果我尝试这样做,它不会起作用。
<script id="entry-template" type="text/x-handlebars-template">
<% if @tag.price_type === 1 %>
<span class="small right white article_price">{{min_price}} €</span>
<% elsif @tag.price_type === 2 %>
<span class="small right white article_price">{{min_price}} €</span> - <span class="small right white article_price">{{max_price}} €</span>
<% else %>
<span class="small right white article_price">No sabe</span>
<% end %>
</script>
这可能吗?也许将文件保存为 hbs.erb? 如果不是,纯 Handlebars 模板会怎样?我尝试制作一个我不明白的自定义助手,但什么也没有。谢谢你们。
最佳答案
您需要在文件末尾使用 .hbs.erb
命名您的文件,而不是简单地使用 .hbs
。
这将鼓励 Rails 首先将文件编译为 .erb
文件(将 erb
数据注入(inject) .hbs
文件),然后Rails 会将文件呈现为 .hbs
(Rails 按照文件扩展名从右到左的顺序编译文件)。
关于javascript - 将 ERB 与 Handlebars 模板一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24203822/