use*_*643 73 haml ruby-on-rails
#item
Run Code Online (Sandbox Code Playgroud)
创建一个id ="item"的div
.box#item
Run Code Online (Sandbox Code Playgroud)
使用class ="box"和id ="item"创建一个div
.box#="item "+x
Run Code Online (Sandbox Code Playgroud)
使用class ="box"和注释"#="item"+ x"创建一个div
.box#
="item"+x
Run Code Online (Sandbox Code Playgroud)
抛出"非法元素:类和id必须有值."
如何将id设置为变量?
EmF*_*mFi 131
有两种方法:
长格式方式(将id定义为常规属性):
.box{:id => "item_#{x}"}
Run Code Online (Sandbox Code Playgroud)
产生这个(x是x.to_s评估的):
<div class="box" id="item_x">
Run Code Online (Sandbox Code Playgroud)
简短形式:
.box[x]
Run Code Online (Sandbox Code Playgroud)
产生以下假设x是一个实例item:
<div class="box item" id="item_45">
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅HAML参考.
您可以通过以下方式在HAML中设置id和class
正常方式
.box.item#item
Run Code Online (Sandbox Code Playgroud)
<div id="item" class="box item"></div>
Run Code Online (Sandbox Code Playgroud)如果需要插值,可以使用此格式
.box{id: "item_#{123}", class: "item_#{123}"}
Run Code Online (Sandbox Code Playgroud)
<div id="item_123" class="box item_123"></div>
Run Code Online (Sandbox Code Playgroud)此格式使用对象引用生成类和ID
# app/controllers/items_controller.rb
@item = Item.find(123)
Run Code Online (Sandbox Code Playgroud)
.box[@item]
Run Code Online (Sandbox Code Playgroud)
<div id="item_123" class="box item"></div>
Run Code Online (Sandbox Code Playgroud)如果您需要添加前缀
.box[@item, :custom]
Run Code Online (Sandbox Code Playgroud)
.box[@item, :custom]
Run Code Online (Sandbox Code Playgroud)如果需要自定义类和ID生成,则需要添加以下方法进行建模。
class CrazyUser < ActiveRecord::Base
def haml_object_ref
"customized_item"
end
end
Run Code Online (Sandbox Code Playgroud)
然后您将获得定制的课程
.box[@item]
Run Code Online (Sandbox Code Playgroud)
<div id="custom_item_123" class="box custom_item"></div>
Run Code Online (Sandbox Code Playgroud)参考:
| 归档时间: |
|
| 查看次数: |
31462 次 |
| 最近记录: |