Комментарии 7
Прицнипиально с точки зрения использования разницы нет. Даже страшный для кого-то синтаксис можно подменить на haml-like с помощью github.com/netzpirat/haml_coffee_assets. У нас в Ленте.ру как раз так и используется. А тут смело можно slim прикрутить, кому то он больше по душе. Отличаются ещё тем, что с JST необходимо грузить сразу все шаблоны, а в предложенном варианте подгружаются только необходимые. Кроме того библиотека позволяет таким образом обращаться к любому файлу из assets, нужно только добавить его в фильтр.
В всязке с angularjs получается вполне себе красивое приложение, которое подтягивает данные и шаблоны по необходимости.
В всязке с angularjs получается вполне себе красивое приложение, которое подтягивает данные и шаблоны по необходимости.
Slim, вообще говоря серверный шаблонизатор, а как вы в него JavaScript вставляйте через script? На клиенте обычно никакие *.html файлы не тянут, тем более руками, тем более в продакшене. Содержание шаблона обычно парсится в строку JavaScript'a и подключается в вместе со всеми ассетами, а доступ к ней осуществляется через объект JST, который создает Sprockets (выше правильно говорят). Управление подключением шаблонов идет тут же. Если хотите Slim, есть его полный аналог для клиента Skim, более подробно про все это тут писал.
Например для использования шаблонов в angularjs нужно сформировать html код с определенными директивами, скормить его в виде строки или дать путь до файла. Для этого не обязательно использовать сторонний шаблонизатор на клиентской стороне. Нужен всего лишь препроцессор для html (коим выступает slim). Тянуть с сервера куски html по необходимости – нормальная практика. Не понимаю вашего негодования по данной связке.
Есть еще ондо прекрасное решение — github.com/mattvague/slim_assets. Очень помогает в связке с angularjs.
Весьма удобно по сравнению с
<%= ... %>
-вставками, тем более, что не нужно переименовывать файл в *.js
.erb
— а значит никаких проблем с подсветкой синтаксиса. Единственное неудобство (для development окружения) — это при изменении в дереве ассетов, необходимо удалять tmp/cache/assets
(чтобы новые, добавленные, файлы добавились и в хэш window.project_assets
) — но не думаю, что существует решение, по этому вопросу очень мало информации в интернете (как-то приходилось искать).Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Метод asset_path в javascript коде rails приложения