Как асинхронно загружать 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