2014-02-20 5 views
3

Я новичок в Rails и на самом деле не понимаю трубопровода активов на сейчас ...автоматически загрузить яваскрипт функции после загрузки страницы

Я хочу, чтобы позволить

views/product/product.js 

автоматически срабатывает после

views/product/index.html.erb 

был отобран для СУХИХ причин.

Есть ли место в конвейере активов, которое вызывает файл model.js после загрузки какого-либо или частичного файла model.erb?

Я знаю, как сделать это вручную, и уронил

app/assets/javascripts/product.js 

но тогда я должен вызвать doSomethingAfterPageload() метод в новом, шоу. удалить и т. д. Даже лучше, если это работает и для частичных.

ответ

2

Контейнер активов под конфигурацией ванили - это просто (упрощенное объяснение), чтобы взять все файлы js, указанные в манифесте (application.js), и создать единый, минифинированный, обфускационный файл для производства. В разработке, если вы включаете манифест на свою страницу (должен быть макет), вы получите теги js include для каждого актива, содержащегося в манифесте.

Общая схема состоит в том, чтобы положить в блокнот yield :javascript, а затем в отдельном виде вызвать функцию javascript внутри блока content_for :javascript do.

Best way to add page specific javascript in a Rails 3 app?

любитель подход будет условно выполнить JS на основе контроллера и действия. Вот как это работает: http://viget.com/inspire/extending-paul-irishs-comprehensive-dom-ready-execution

0

IMO, если этот метод js следует вызывать в каждом представлении модели продукта, вы можете определить макет для продукта и вызвать метод внутри файла макета.

0

Взято отсюда: Asset Pipeline - Rails guides

Если добавить app/assets/javascripts/<controller>.js он будет доступен для конкретного контроллера.

Так что, если вы добавите к app/assets/javascripts/product.js:

$(document).ready -> 
    alert "page has loaded!" 

Он будет выполнен в каждом виде этого контроллера, как index или edit.

Надеюсь, что это поможет :)

+0

Спасибо! Я пробовал это раньше, но это также будет выполняться во всех других представлениях контроллера ... – user3320429

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