html
  • ruby-on-rails
  • haml
  • 2010-08-22 16 views 5 likes 
    5

    che sto cercando di realizzare il seguente contenuto nel codice sorgente:Rails + Haml: come rimuovere un parametro di tag?

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

    senza sfuggire alcun segno in Haml.

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

    produce

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

    In questo momento l'unico modo in cui posso fare questo con Haml è quello di utilizzare :plain filtro e hardcode HTML senza utilizzare alcuna vista Helpers. Come posso ripararlo?

    Ho bisogno di questo perché sono costretto a seguire questa convenzione a causa di terze parti convenzione sintassi: JavaScript Micro-Templating

    Riferimento:

    Haml reference

    risposta

    4

    Tu dici che stai codifica in Haml, ma le parentesi indicano Erb.

    • Fase 1. Prova normale interpolazione Rubino:

      %div{ :id => "box_#{id}" } 
      
    • Fase 2. Non v'è alcun punto 2.

    Aggiornamento: Quando ho scritto questa risposta, non avevo usato un quadro di template JS prima. Le mie scuse per non groking perché questo era necessario.

    +0

    dispiace ma non lo faccio codice.Codice in Haml e ho bisogno di <%=id%> senza caratteri di escape nel codice sorgente (il collegamento Micro-Templating spiega la sintassi). David, come posso aggiustarlo? – ep3static

    +0

    Sono confuso. Stai generando un modello per analizzare una lingua usando * un'altra * lingua dei modelli? Non penso di andare su questa strada. –

    +0

    Giusto :) Probabilmente il collegamento Micro-Templating lo spiegherà meglio. – ep3static

    2

    Fondamentalmente, non utilizzare HAML per quella sola affermazione. Per esempio, supponendo che si sta facendo qualcosa di simile in HAML adesso:

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

    invece fare:

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

    sarà interpretare il tag script come HAML correttamente, dal momento che non si sta utilizzando qualsiasi %, #, ecc. per iniziare la riga successiva, interpreterà quella linea come testo normale e la passerà attraverso. Sembra funzionare bene per me e ho un caso molto simile al tuo. L'unica cosa che ho fatto fare era cambiare il jQote (il motore di template che sto usando per la mia Javascript template) da tag % a $ con questa affermazione javascript nel head della pagina:

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

    In questo modo il % i segni non confondono l'interprete di Ruby. Quindi l'esempio finale sarebbe:

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

    Buona fortuna!

    0
    +0

    risolve il problema a metà strada. Nel mio caso, ho bisogno di fare!

    chfw

    Problemi correlati