добавить дополнительный класс для визуализации частичного - PullRequest
0 голосов
/ 03 сентября 2011

Я ищу некоторую помощь в отношении частичных Я создал раздел для меню на своем сайте, но я хотел бы знать, могу ли я добавить дополнительный класс в раздел. В частности, я хочу назначить дополнительный класс для объекта меню li, чтобы я мог указать, что пользователь находится на этой конкретной странице.

Вот мой код для частичного (я использую HAML). Он называется _menu.html.haml и находится в папке «shared».

.three.columns
  %ul#nav
    %li
      %a{:href => "../pages/about"} About
    %li
      %a{:href => "../pages/careers"} Careers
    %li
      %a{:href => "../pages/contact"} Contact Us
    %li

Мой код для страницы carrers.html.haml выглядит следующим образом:

 code...
 = render :partial => 'shared/menu'
 more code...

Я хотел бы добавить класс .active_page к ссылке о карьере, расположенной в частичном. Этот класс изменяет фоновое изображение позади текста, чтобы указать, что пользователь находится на определенной странице. Точнее, я бы хотел, чтобы это выглядело так:

%li.active_page
   %a{:href => "../pages/careers"} Careers

Можно ли сделать это, используя частичные функции?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2011

Есть множество способов сделать это.Я бы не использовал партиалы, я бы сделал:

%li{:class => @active_page=="careers" ? "active_page" : ""}
  %a{:href => "../pages/careers"} Careers

Предполагая, что @active_page был создан вашим контроллером.

0 голосов
/ 03 сентября 2011

Тот факт, что вы используете частичное, не меняет того, как вы можете использовать HAML, или ERB, или что-то в этом роде.Если вы хотите добавить класс, то просто добавьте .active_page в тег HTML.Если это допустимо в HAML, то вы можете сделать это в любом месте представления, даже если это частичное представление.

Частичное представление - это просто модульные / повторно используемые представления.Точно так же, как вы можете использовать код внутри метода экземпляра и внутри метода класса, потому что они просто код, так же вы можете использовать один и тот же код HAML в частичном и «обычном» представлении.

...