JST undefined для рельсов 3.1 приложение
Большинство руководств rails 3.1, посвященных конвейеру активов и шаблону javascript, заставляют меня думать, что конвейер активов забирает любые *.jst файлы и удаляет их в JST-переменную, доступную вашим *.js файлам. Однако, когда я пытаюсь загрузить шаблон *.jst, я в настоящее время сталкивается со следующей ошибкой:
Uncaught ReferenceError: JST is not defined
Любые указатели?
Ответы
Ответ 1
Кажется, что переменная JST устанавливается, если вы правильно включаете элементы шаблона javascript в свой файл app/assets/application.js
, чтобы они могли быть включены через конвейер активов:
//= require templates/your_template.jst
Затем включите шаблон javascript в соответствующие рельсы (используя haml):
- content_for :javascripts do
= javascript_include_tag "templates/your_template"
Ответ 2
если вы используете требуемую строку, например
//= require_tree../templates
убедитесь, что строка выше, строка, которая включает любой файл, дает вам ошибку.
Ответ 3
Все остальные ответы на это, но уточнить...
JST не определяется звездочками, если в манифесте не требуется один или несколько файлов .jst.
Итак, даже если у вас есть //= require_tree ../templates
в вашем манифесте, JST по-прежнему будет undefined, пока вы не создадите хотя бы один .jst файл в каталоге шаблонов.
Также обязательно включите драгоценный камень EJS. Если вы включили опорные шины, у вас уже есть.
Ответ 4
Похоже, вам нужен EJS Gem, который включен, если вы используете рельсовую магистраль Gem.
Затем вы просто создаете файл, например app/asset/javascripts/foobar.jst.ejs, и его можно отобразить, вызвав
JST['foobar']()
Надеюсь, что ответит на ваш вопрос.
Ответ 5
Кажется, что JST не имеет ничего общего с Backbone или Underscore, это делается с помощью back-end и приведет к тому, что объект JST и функция JST будут отображаться на ваших интерфейсных страницах.