Я включил библиотеку intl-tel-input js и css в свой index.html:
<link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/14.0.6/css/intlTelInput.css" />
<script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/14.0.6/js/intlTelInput.min.js"></script>
У меня есть еще один файл с именем app.js, внутри которого я форматирую номер, пока пользователь набирает textbox:
window.intlTelInputGlobals.loadUtils(_TEL_INPUT_UTILS).then(function(x, y){
var pn = $("#phone_number")[0];
var iti = intlTelInput(pn,{
nationalMode: false,
initialCountry: 'US'
})
var handleChangeEventVerification = function() {
if (iti.getNumber() ){
iti.setNumber(iti.getNumber());
}};
pn.addEventListener('change', handleChangeEventVerification);
pn.addEventListener('keyup', handleChangeEventVerification);
Переменная _TEL_INPUT_UTILS относится к служебному сценарию intl-tel-input после его загрузки. Я пытаюсь отформатировать номер в моем text box.
Этот код находится в:
$(document).ready(function(){
//...
})
Теперь у меня есть код в app.js, который не входит в loadUtils, и я хочу отформатировать это число в переменной.
Когда я вызываю тот же loadUtils, я получаю ошибку:
jQuery.Deferred exception: window.intlTelInputGlobals.loadUtils(...) is null my_scpecific_funcation@webpack:///./src/app.js?:258:13
Вопрос в том, что как я могу отформатировать число внутри переменной? Нужно ли мне каждый раз использовать loadUtils? Есть ли лучший способ для всего процесса?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я не знал, что когда вы используете loadUtils, он будет загружен, и у вас будет к нему доступ.
Поэтому я без лишних слов использовал приведенный ниже код:
intlTelInputUtils.formatNumber(my_number_var, null, intlTelInputUtils.numberFormat.INTERNATIONAL);