在JavaScript中访问第三方加载的requireJS包
我正在尝试解决如何访问我的requireJS JavaScript中的库。我有下面的代码,我需要回调在requireJS模块之外,因为第三方代码正在访问它 如何访问在JavaScript中访问第三方加载的requireJS包,javascript,symfony,callback,requirejs,intl-tel-input,Javascript,Symfony,Callback,Requirejs,Intl Tel Input,我正在尝试解决如何访问我的requireJS JavaScript中的库。我有下面的代码,我需要回调在requireJS模块之外,因为第三方代码正在访问它 如何访问回调函数中的intlTelInput代码 在我的小枝模板中: <script type="text/javascript"> require(['crmpicco/details'], function(details) { details.init(); }); var callb
回调
函数中的intlTelInput
代码
在我的小枝模板中:
<script type="text/javascript">
require(['crmpicco/details'], function(details) {
details.init();
});
var callback = function (response) {
// I want to access intlTelInput in here
};
</script>
据我所知,你需要这样的片段, 请看一看
require.config({
路径:{
'国际电话输入':'https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/11.0.10/js/intlTelInput',
“jquery”:”https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min'
}
});
需要(['intl-tel-input'],函数(){
函数someCallback(){
$(“#某些输入”).intlTelInput();
}
setTimeout(someCallback,1000);
});
在他们的源代码中,他们支持UMD,所以我想你可以使用require(['intl-tel-input'],function(IntlTelInput){}
内部回调。不需要填充。@Andrey你知道应该如何实现吗?如果回调
在require
内部,则第三方代码找不到回调函数。@Andrey类似地,如果require
在回调
内部,则intlTelInput
无法实现被找到。TypeError:intlTelInput不是一个函数
。谢谢你的评论。这里的setTimeout
的目的是什么?你看到我上面的评论了吗?@crmpicco,setTimeout只是为了证明你可以在异步回调中初始化intlTelInput。不幸的是,这不能在require
中完成“intl tel input”的一部分。有关我试图实现的目标,请参阅Google的隐形reCaptcha演示上的源代码。有关可行的解决方案,请参阅我在EWZReCaptcha项目上的PR和我的fork
require = {
baseUrl: '/assets/js',
paths: {
'intl-tel-input': '/assets/vendor/intl-tel-input/build/js/intlTelInput.min',
},
shim: {
'intl-tel-input': {
deps: ['libphonenumber-utils']
},
}
};