1

有人问过这个问题,但答案没有奏效。我遇到的问题是这个 hamlc 代码:

 .UI_feed_item.deletable.clearfix{ :class => @feed.fav_post ? 'favorited' : '', feed_id: "#{@feed.id}", id: "feed_item_#{@feed.id}" }
   *a lot more haml that doesn't have to do with this question*

缩进是正确的——它在这里显得很奇怪,如果 feed.fav_post 为真,我想添加一个额外的类来表示收藏。出于某种原因,它添加了一个类“真”或“假”。我也试过这个:

 .UI_feed_item.deletable.clearfix{ :class => (@feed.fav_post ? 'favorited' : ''), feed_id: "#{@feed.id}", id: "feed_item_#{@feed.id}" }

同样的结果我不能做 if/else 的事情,因为 haml 没有结束,我将不得不重写一百行缩进代码。请帮忙!网络上的其他解决方案都没有奏效

4

2 回答 2

0

你的第二个镜头应该可以正常工作。第一个变体返回真/假,因为哈希火箭在优先级方面胜过三元运算符 - 但在那之后它不应该因为语法错误而中断吗?

你可以在haml中做if-else。

- if true
  some stuff here
- else
  some other stuff here

使用缩进代替end.

于 2013-10-11T14:40:40.087 回答
0

HALMC 不支持 ?/: 三元运算符,但您仍然可以使用内联 if/then/else 实现您想要的。尝试这个:

.UI_feed_item.deletable.clearfix{ :class => "#{ if @feed.fav_post then 'favorited' else '' }", feed_id: "#{@feed.id}", id: "feed_item_#{@feed.id}" }
于 2014-01-15T11:06:08.867 回答