我正在使用requirejs并且正在调用retinajs作为插件。我正在使用垫片和jQuery依赖:
....
'plugins/retina.min': {
'deps': ['jquery']
}
....
然后我启动我的应用程序:
requirejs(['./main'], function(App) {
App.init();
});
" main.js":
define(['jquery', 'foo', 'bar', 'plugins/domReady!', 'plugins/retina.min'], function($, foo, bar, retina) {....});
我页面上的我的徽标正在更新,但似乎我遇到了计时问题。在页面下方(甚至后续页面视图),脚本将在页面准备好之前执行。
Retina.js自动执行,因此没有一种方法可以按照说法进行初始化。有没有办法去打电话"一个jquery插件,可以使用require js自动执行吗?
这是错误的,但我认为这与我需要的一致:
define(['jquery', 'foo', 'bar', 'plugins/domReady!', 'plugins/retina.min'], function($, foo, bar, retina) {
var App = {
init: function() {
retina.init(); // This doesn't exist
<script src="/plugins/retina.js"></script> // Not even close to valid, but this is what I need.
}
};
return App;
});
感谢您的时间和建议!
答案 0 :(得分:2)
试试这个:
define(['jquery', 'foo', 'bar', 'plugins/domReady!'], function($, foo, bar) {
var App = {
init: function() {
require(['plugins/retina.min'], function(){
// This is straight from retina.js's source: https://github.com/imulus/retinajs/blob/master/src/retina.js#L142
if (Retina.isRetina()) {
Retina.init(window);
}
});
}
};
return App;
});