2013-04-08 38 views
2

我想同步附加YUI模塊。如何同步附加YUI3模塊?

Given the YUI modules are already on the page 
When I run: console.log YUI().use('base').Base 
Then I get `undefined` 

然而,

When I run: YUI().use('base', (Y) -> console.log Y.Base) 
Then I eventually get the Y.Base ctor function 

它看起來像裝載機異步連接,因爲它使用回調方法,工作正常。 IIRC第一種方法應該也可以工作。我錯過了什麼?

回答

0

如果你像Node.js的受控環境中使用YUI,那麼你應該能夠使用useSync配置:

YUI({ useSync: true }).use('base').Base 

但在瀏覽器中,或其他任何客戶端運行時你應該堅持Y.use的異步性質,因此加載程序可以根據特徵檢測等來計算合適的待附加模塊列表的工作。將模塊手動包含在Pase中是不夠的。想象一下IE中的scrollview-base,它需要一個名爲scrollview-base-ie的特殊模塊,除非在IE中運行時構建包含該模塊的初始標記時進行檢測,否則將會丟失模塊。再次,加載的東西時堅持異步模式。

+0

這是一個受控制的環境。我想我理解異步方法的好處。無論如何,我仍然想完成這件事,但它似乎並不奏效。這個小提琴有什麼問題嗎? http://jsfiddle.net/uvrMp/3/ – 2013-04-08 19:34:23