我建立了一个可以动态加载包含双击广告的iframe的助手。问题是,如果我在require.js内部调用帮助程序,并且启用adBlock,则会阻止Backbone加载。我尝试将其移至自执行函数,但需要下划线和jquery。
帮手:
(define('helpers/advertisements', [
'jquery',
'lodash'
], )function($, _) {
'use strict';
var Advertisement = {
initialize: function() {
console.log('init');
}
}
return Advertisement;
});
AppLayout:
'use strict';
define('master/views/AppLayout', [
'backbone',
'marionette',
'helpers/advertisements'
], function(Backbone, Marionette, AdHelper) {
// Define the application layout specific regions
return Backbone.Marionette.Layout.extend({
onRender: function() {
AdHelper.initialize();
}
});
});
这是我解耦的方式:
html:
<script src="helpers/advertisments.js"></script>
帮手:
(function($, _) {
'use strict';
var Advertisement = {
initialize: function() {
console.log('init');
}
}
Advertisement.initialize()
})($, _);
1.)解耦助手功能的最佳方法是什么?
2.)还是在需求范围内使用延迟/承诺会更好?
最佳答案
尝试在“初始化后”回调中内联要求它。就像是
MyApp.on("initialize:after", function(){
require('helpers/advertisements', function(AdHelper){
AdHelper.initialize();
});
});
关于javascript - 从requirejs解耦脚本/防止adBlocker停止下载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21080274/