There's not a great, general way to do this in Haml 1.8. For the first 
example, you could do

  - content_for :onload_scripts do
    == $(#{highlighted_item.to_json}).effect('highlight');

Calling out to ERB is probably the best option for the second script.

However, in the master branch you can use filters with variable 
interpolation, like so:

  - content_for :onload_scripts do
    :plain
      $('#search_items').autocomplete(
        #{url_for(:controller => '/items', :action => 'search').to_json},
        { selectFirst: false, minChars: 2 });

Note that I'm calling to_json on the strings before putting them into 
the document; that guarantees that they'll result in valid Javascript.

- Nathan

Jesús wrote:
> Hi, i've just met Haml (and i love it!), but i'm having problems
> translating some erb views.
>
> i usually have (erb) code like this:
>
> <% content_for :onload_scripts do %>
>        $('#<%= highlighted_item %>').effect('highlight');
> <% end %>
>
> or
>
> <% content_for :onload_scripts do %>
>    $('#search_items').autocomplete(
>         '<%= url_for :controller => '/items',
>                           :action => 'search' %>', {
>         selectFirst: false,
>         minChars: 2
>    });
> <% end %>
>
> ie, to generate javascript with erb.
>
> How can i write code like this in haml that doesn't suck? i think that
> the only way to do this is with something respectively like:
>
> - content_for :onload_scripts do
>   $('
>   =  highlighted_item
>   ').effectt('highlight');
>
> - content_for :onload_scripts do
>   $('#search_items').autocomplete('
>   = url_for :controller => '/items', :action => 'search'
>   ', {selectFirst: false, minChars: 2});
>
> that's really ugly, don't you think? for now i'm using a
> = render :partial => 'an_erb_file'
> and putting all that stuff there, but that method sucks too :(
>
> >
>


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Haml" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/haml?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to