2010-01-13 3 views
0

Чтобы сделать application.js более динамичным, я создаю javascript_controller и переименовывать общественности/application.js в приложение/просмотров/JavaScripts/application.js.erbальтернативы для Еврорадио, чтобы сделать application.js динамический

Но <%= … %> не выглядят очень хорошо в javascript, есть ли какие-то лучшие шаблоны для этой задачи?

+0

Для чего вам нужен динамический JS? Там может быть способ сделать это без. – jonnii

+0

В основном, чтобы вставлять шаблоны и константы (те, которые должны быть разделены между javascript и css, представлениями или моделями) Это можно сделать без erb, например, установив их в макете, но с использованием шаблонов он намного более прямой и требует меньше кода – tig

ответ

3

Если вы ищете лучший шаблонный двигатель, почему бы не попробовать haml?

В Haml, следующий эрб Javascript

function test(blah) { 
    alert("<%= @application_name %> says " + blah); 
} 

может быть переписан как:

function test(blah) { 
    alert("#{@application_name} says " + blah); 
} 

С Haml с использованием рубиновой строки интерполяции, что мы все выросли, чтобы знать и любить.

PS: Одна из приятных вещей о haml заключается в том, что она может жить прямо вдоль стороны erb. Просто установите драгоценный камень, измените имя application.erb.js на application.haml.js, и все должно быть установлено.

PPS: Идя по этому маршруту, вы также откроете дверь для использования haml в любых ваших взглядов. Конечно, некоторые люди действительно любят ERb, но, по моему опыту, использование haml на порядок более читаемо и больше удовольствия.

+0

В текущем проекте я начал использовать haml, но я не был уверен, что haml не будет применяться к некоторым строкам javascript. Кроме того, поскольку он отступал, что он будет делать с отступом javascript? – tig

+0

Отступы javascript будут в порядке. Отступ - это функция, используемая для генерации html (т. Е. Haml использует отступ, чтобы выяснить, когда закрыть html-тег). В этом случае вы просто используете функцию интерполяции строк Haml, которая может использоваться независимо от функций генерации html. – jerhinesmith

Смежные вопросы