سؤال

#item

يخلق DIV مع ID = "العنصر"

.box#item

يخلق DIV مع Class = "Box" و ID = "العنصر"

.box#="item "+x

يخلق DIV مع Class = "Box" وتعليق "# =" عنصر "+ X"

.box#
  ="item"+x

يلقي "العنصر غير القانوني: يجب أن يكون للفصول والمعرفات قيم".

كيف يمكنني تعيين المعرف إلى متغير؟

هل كانت مفيدة؟

المحلول

هناك طريقتان:

طريقة النموذج الطويل (حدد المعرف كما لو كانت سمة منتظمة):

.box{:id => "item_#{x}"}

تنتج هذا (x هو أكثر من أي وقت مضى x.to_s يقيم إلى):

<div class="box" id="item_x">

طريقة النموذج القصير:

.box[x]

تنتج ما يلي افتراض x هو مثال من item:

<div class="box item" id="item_45">

انظر مرجع هامل للمزيد من المعلومات.

نصائح أخرى

يمكنك ضبط id و class في هامل الطرق التالية

  1. الطريق الطبيعي

    .box.item#item
    
    <div id="item" class="box item"></div>
    
  2. إذا كنت بحاجة إلى الاستيفاء، فيمكنك استخدام هذا التنسيق

    .box{id: "item_#{123}", class: "item_#{123}"}
    
    <div id="item_123" class="box item_123"></div>
    
  3. يولد هذا التنسيق الفصل والمعرف باستخدام مرجع الكائن

    # app/controllers/items_controller.rb 
    @item = Item.find(123)
    
    .box[@item]
    
    <div id="item_123" class="box item"></div>
    
  4. إذا كنت بحاجة إلى بادئة شيء ما

    .box[@item, :custom]
    
    <div id="custom_item_123" class="box custom_item"></div>
    
  5. إذا كنت بحاجة إلى فئة مخصصة وإنشاء معرف تحتاج إلى إضافة الطريقة التالية إلى النموذج.

    class CrazyUser < ActiveRecord::Base
      def haml_object_ref
        "customized_item"
      end
    end
    

    ثم سوف تحصل على الطبقة المخصصة

    .box[@item]
    
    <div id="customized_item_123" class="box customized_item"></div>
    

أشير:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top