html
  • ruby-on-rails
  • haml
  • 2010-08-22 8 views 5 likes 
    5
    Haml में कोई लक्षण भागने के बिना

    रेल + हमल: कैसे अनदेखा टैग पैरामीटर?

    <div id="box<%=id%>"></div> 
    

    :

    मैं स्रोत कोड में निम्न सामग्री हासिल करने के लिए कोशिश कर रहा हूँ।

    %div{ :id => "box_<%=id%>" } 
    

    पैदा करता

    <div id='box_&lt;%=id%&gt;'></div> 
    

    अभी एक ही रास्ता मैं Haml साथ ऐसा कर सकते हैं किसी भी दृश्य सहायकों का उपयोग किए बिना :plain फिल्टर और hardcode HTML का उपयोग करने के लिए है। मैं कैसे इसे ठीक कर सकता हूं?

    मैं इस की जरूरत है क्योंकि मैं तीसरे पक्ष के वाक्य रचना सम्मेलन के कारण इस व्यवहार का पालन करने के लिए मजबूर कर रहा हूँ: JavaScript Micro-Templating

    संदर्भ:

    Haml reference

    उत्तर

    4

    आप कहते हैं कि आप Haml में कोडिंग रहे हैं, लेकिन ब्रैकेट Erb इंगित करता है।

    • चरण 1। सामान्य रूबी प्रक्षेप का प्रयास करें:

      %div{ :id => "box_#{id}" } 
      
    • चरण 2। कोई कदम 2.

    है अद्यतन: जब मैं इस जवाब लिखा, मैं पहले एक जे एस templating ढांचे इस्तेमाल नहीं किया था। यह जरूरी नहीं है कि यह क्यों जरूरी है।

    +0

    क्षमा करें, लेकिन मैं कोड नहीं है।मैं हैम में कोड और <%=id%> स्रोत कोड में अनदेखा की आवश्यकता है (माइक्रो-टेम्पलेटिंग लिंक वाक्यविन्यास बताता है)। डेविड, मैं इसे कैसे ठीक कर सकता हूं? – ep3static

    +0

    मैं उलझन में हूँ। आप * एक और * templating भाषा का उपयोग कर एक भाषा के लिए एक टेम्पलेट पैदा कर रहे हैं? मुझे नहीं लगता कि मैं इस मार्ग पर जाऊंगा। –

    +0

    दायां :) शायद सूक्ष्म-टेम्पलेटिंग लिंक इसे बेहतर समझाएगा। – ep3static

    2

    असल में, बस उस कथन के लिए HAML का उपयोग न करें। उदाहरण के लिए, यह सोचते हैं आप Haml में कुछ इस तरह कर रहे हैं अभी:

    %script#template(type="text/html") 
        %div{ :id => "box_<%=id%>" } 
    

    इसके बजाय, कार्य करें:

    %script#template(type="text/html") 
        <div id="box_<%=id%>"></div> 
    

    यह तो सही ढंग से Haml के रूप में स्क्रिप्ट टैग की व्याख्या करेगा, जब से तुम उपयोग नहीं कर रहे अगली पंक्ति शुरू करने के लिए कोई भी %, # इत्यादि। यह उस रेखा को सादे पाठ के रूप में समझाने और इसे पार करने के लिए व्याख्या करेगा। मेरे लिए ठीक काम करने लगता है और मेरे पास आपका बहुत ही मामला है। एक बात मैं कर किया jQote (templating इंजन मैं अपने जावास्क्रिप्ट templating के लिए उपयोग कर रहा हूँ) % से टैग $ के लिए पृष्ठ के head में इस जावास्क्रिप्ट बयान के साथ बदल गया था:

    %script(type="text/javascript") 
        $(function() { $.jqotetag('$'); }); 
    

    इस तरह % संकेत रूबी दुभाषिया को भ्रमित नहीं करते हैं। तो अंतिम उदाहरण होगा:

    %script#template(type="text/html") 
        <div id="box_<$=id$>"></div> 
    

    शुभकामनाएँ!

    0
    +0

    समस्या को आधे रास्ते में हल करती है। मेरे मामले में, मुझे करने की ज़रूरत है!

    chfw

    संबंधित मुद्दे