2014-03-13 34 views
0

我正在使用requirejs,並且正在調用retinajs作爲插件。我使用的墊片有一個jQuery一起扶養:使用requirejs和retinajs

.... 
'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插件,自動執行需要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; 
}); 

謝謝您的時間和建議!

+1

你確定你要鏈接到正確的「視網膜」項目?如果我去那裏看源代碼,我沒有看到任何與jQuery相關的東西。然而,這個[project](https://github.com/tylercraft/jQuery-Retina)*是一個jQuery插件。 – Louis

+0

是啊[這](http://retinajs.com/)是我正在使用的插件。儘管如此,我對任何事情都是開放的我會檢查這一個。也許它會更好地滿足我的需求。謝謝! – Damon

回答

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; 
}); 
+0

我只是進入了需求場景 - 這看起來像我想要走下去的道路。謝謝! – Damon