Как асинхронно загружать JavaScript при использовании Sprockets и Turbolinks в Rails 4

Я хочу включить zxcvbn.js в свой проект и внедрить измеритель надежности пароля, чтобы использовать мой гем devise_zxcvbn.

Однако я не хочу загружать zxcvbn.js через звездочки.

Так как же вместо этого загрузить его асинхронно и запустить некоторые коды после его загрузки, во время page:load?

1 ответ

Решение

Обновление с обратным вызовом

Я бы, вероятно, использовал вызов getScript, чтобы избежать звездочек. Просто какой-нибудь coffeescript, который проверяет действительный URL регистрации устройства или модальный, в зависимости от вашей настройки, затем добавьте:

$(document).on 'page:load', ->
  ZxcvbnWithTurbolinks

ZxcvbnWithTurbolinks =
  $.getScript('/js/zxcvbn.js').done((s, Status) ->
    console.warn Status
    # Do some other interesting stuff, like using the script you just fetched
    return
  ).fail (jqxhr, settings, exception) ->
    console.warn 'Something is hinky - not possible to check password strength' + exception
    return
Другие вопросы по тегам