В приложении Rails я использую turbolinks и jquery-turbolinks. У меня есть несколько больших зависимостей javascript, таких как dataTables. Сначала я загружал все эти зависимости в application.js, но, в конце концов, у меня есть большой файл в 1 месяц после предварительной компиляции, поэтому я хочу загружать зависимости только тогда, когда они требуются.
Я создал файл с именем custom-datables.coffe
с таким содержимым:
#= require dataTables/jquery.dataTables
#= require datatables
$(document).ready ->
console.log $('.data-table').dataTable
Я включил это так:
- content_for :javascript do
= javascript_include_tag 'custom-datatables'
И я даю javascript в конце моего макета приложения.
Это работает, когда я обновляю страницу, но когда я перехожу на эту страницу, используя турбоссылки, я вижу, что $('.data-table').dataTable
не определено. Когда я набираю $('.data-table').dataTable
в консоли Firefox, функция определяется. $(document).ready
похоже срабатывает до полной загрузки datatable.
Есть ли способ это исправить? Лучше ли загружать большие зависимости?